2009-07-29 113 views
0

在.NET C#中,我試圖打開Excel模板,添加一些數據並將其保存爲新文檔。我正在嘗試使用OpenXML文檔格式。我似乎無法找到關於如何做到這一點的任何指導。好像所有關於如何將各種部分寫入軟件包的文檔說明一樣,但當您完成並想要保存時,我找不到要執行的操作。保存Excel 2007文檔

任何人都知道我可以在哪裏找到這些信息?我一定在錯誤地思考這個問題,因爲我沒有發現任何有用的東西,看起來很基本。

感謝

+1

的SpreadsheetML是_not_ OpemXML – 2009-07-29 19:12:45

回答

1

ExcelPackage作品是相當不錯的。它沒有被主要作者的工作,我不認爲有一段時間,但它的論壇上有很多人關注任何問題。

  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中的文件是遠離平凡的工作。該規範龐大而複雜。 「Open XML SDK」(谷歌它)肯定有幫助,但仍然需要一些Open XML標準的知識才能完成。

有一個類似於Excel的API,可以讀取和寫入Excel Open XML(xlsx)文檔以及Excel 97-2003(xls)文檔。

您可以看到一些SpreadsheetGear示例here並下載免費試用here

聲明:我自己的SpreadsheetGear LLC