2009-07-29 7 views
0

In .NET C# Ich versuche, eine Excel-Vorlage zu öffnen, fügen Sie einige Daten hinzu und speichern Sie es als neues Dokument. Ich versuche das OpenXML-Dokumentformat zu verwenden. Ich kann anscheinend keine Anleitung finden, wie man das macht. Scheint so, als ob die ganze Dokumentation darüber redet, wie man verschiedene Teile in das Paket schreibt, aber ich kann nichts finden, was zu tun ist, wenn du fertig bist und es speichern willst.Speichern Excel 2007 Dokumente

Wer weiß, wo ich diese Informationen finden kann? Ich muss falsch darüber nachdenken, weil ich nichts Nützliches in etwas finde, was sehr einfach zu sein scheint.

Dank

+1

SpreadsheetML ist _nicht_ OpemXML –

+0

@ Joel - Eigentlich SpreadsheetML als Name für das Excel 2007 Open XML-Format, sowie das alte veraltete Excel 2003 XML-Format verwendet wird. –

Antwort

1

ExcelPackage Arbeiten für das ziemlich gut. Es wurde nicht vom Hauptautor bearbeitet Ich denke nicht für eine kleine Weile, aber es hat eine gute Anhängerschaft von Leuten in seinem Forum, die irgendwelche Probleme ausarbeiten.

  FileInfo template = new FileInfo(Path.GetDirectoryName(Application.ExecutablePath)+"\\Template.xlsx"); 
     try 
     { 
      using (ExcelPackage xlPackage = new ExcelPackage(strFileName,template)) 
      { 
       //Enable DEBUG mode to create the xl folder (equlivant to expanding a xlsx.zip file) 
       //xlPackage.DebugMode = true; 

       ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets["Sheet1"]; 

       worksheet.Name = WorkSheetName; 

       foreach (DataRow row in dt.Rows) 
       { 
        int c = 1; 
        if (r > startRow) worksheet.InsertRow(r); 
        // our query has the columns in the right order, so simply 
        // iterate through the columns 
        foreach (DataColumn col in dt.Columns) 
        { 
         if (row[col].ToString() != null) 
         { 
          worksheet.Cell(r, c).Value = colValue; 
          worksheet.Column(c).Width = 10; 
         } 
         c++; 
        } 
        r++; 
       } 

       // change the sheet view to show it in page layout mode 
       worksheet.View.PageLayoutView = false; 

       // save our new workbook and we are done! 
       xlPackage.Save(); 
       xlPackage.Dispose(); 
      } 
     } 
0

Open XML/SpreadsheetML Dokumente Zugriff ist weit von einer trivialen Übung. Die Spezifikation ist groß und komplex. Das "Open XML SDK" (google it) hilft auf jeden Fall, erfordert aber noch einige Kenntnisse des Open XML-Standards, um viel zu erreichen.

hat eine API ähnlich Excel und kann Excel Open XML (xlsx) Dokumente sowie Excel 97-2003 (xls) Dokumente lesen und schreiben.

Sie können einige SpreadsheetGear-Beispiele sehen here und laden Sie eine kostenlose Testversion here.

Haftungsausschluss: Ich besitze SpreadsheetGear LLC