2010-02-11 7 views
2

J'ai besoin de créer un fichier Excel très simple à partir du code C#, j'ai vu la question suivante, mais a été mélangé sur les différentes options. Quelqu'un pourrait-il me dire quelle est la meilleure et la plus simple façon de le faire. J'en ai besoin pour courir aussi bien sur xls que sur xlsx. en plus j'ai besoin d'une formule pour colorer une colonne spécifique en fonction du contenu.créer et écrire dans un fichier Excel de C#

Répondre

2

peut créer et écrire des classeurs xls et xlsx à partir de C# et prend en charge les formats conditionnels qui peuvent être utilisés pour colorer les cellules en fonction des valeurs dans les cellules.

Vous pouvez voir des échantillons ASP.NET en direct here et télécharger l'essai gratuit here si vous voulez l'essayer vous-même.

Voici un code pour créer un classeur avec des nombres aléatoires compris entre 0 et 1000 et un format conditionnel qui définit l'arrière-plan sur bleu et la couleur du texte sur blanc pour les valeurs> 500. Chargez les classeurs résultant dans Excel (ou dans le SpreadsheetGear pour application Windows qui est installé avec le logiciel d'essai SpreadsheetGear) et notez ce qui se passe lorsque vous appuyez sur F9 pour recalculer:

using System; 
using SpreadsheetGear; 

namespace FormatConditions 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      // Create a new empty workbook. 
      IWorkbook workbook = Factory.GetWorkbook(); 
      IRange cells = workbook.Worksheets[0].Cells["A1:A5"]; 
      // Place formulas resulting in random numbers between 0 and 1000. 
      cells.Formula = "=RAND()*1000"; 
      cells.NumberFormat = "0"; 
      // Add a format condition to use blue background and white text for numbers >500. 
      IFormatCondition fc = cells.FormatConditions.Add(FormatConditionType.CellValue, FormatConditionOperator.Greater, "500", ""); 
      fc.Interior.Color = System.Drawing.Color.Navy; 
      fc.Font.Color = System.Drawing.Color.White; 
      // Save to xls and xlsx. 
      workbook.SaveAs(@"c:\tmp\FormatConditions.xls", FileFormat.Excel8); 
      workbook.SaveAs(@"c:\tmp\FormatConditions.xlsx", FileFormat.OpenXMLWorkbook); 
     } 
    } 
} 

Disclaimer: Je possède SpreadsheetGear LLC

0

Créez-vous ce fichier côté client ou côté serveur? Si c'est sur le serveur, vous ne devriez pas utiliser l'automatisation. Aspose a un produit qui semble bien fonctionner, je pense qu'il s'appelle Aspose.Cells. Ce n'est pas gratuit cependant.

0

L'une des options que je ne vois pas dans le fil était NPOI plus tôt - http://npoi.codeplex.com/

Je crois que ce qui vous permet de changer la couleur conditionnelle cellulaire.

Quelques questions:

  • Quelles sont les versions d'Excel avez-vous besoin de soutenir?
  • Est-ce côté client ou côté serveur?
  • Excel sera-t-il installé sur le client?
2

J'ai utilisé Gembox.Spreadsheet et l'ai trouvé simple et rapide. Il supporte xls et xlsx et peut manipuler des styles de cellules et des formules. Ils ont une édition gratuite qui ne prend en charge que 150 lignes par feuille de calcul et 5 feuilles de travail par classeur.

Questions connexes