2009-10-27 68 views
2

我創建一個Excel工作表從tempalte Excel工作表。如何以編程方式從模板excel表單創建excel表單?

我有一個代碼

try 
    { 
     FileInfo newFile = new FileInfo(@"D:\ExcelFromTemplate.xlsx"); 
     FileInfo template = new FileInfo(@"D:\template.xlsx"); 

     using (ExcelPackage xlPackage = new ExcelPackage(newFile,template)) 
     { 

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

      ExcelCell cell = worksheet.Cell(5,1); 
      cell.Value = "15"; 

      //worksheet.Cell(5, 1).Value = "Soap"; 

      //xlPackage.Save(); 
      Response.Write("Excel file created successfully"); 
     } 

    } 
    catch (Exception ex) 
    { 
     Response.WriteFile(ex.InnerException.ToString()); 
    } 

此代碼創建新Excel文件相同的模板excel文件,但不能添加單元格的值。爲什麼?

我曾與2種方式嘗試了在用於細胞上面的代碼(5,1)。但是excel表創建時沒有寫入單元格值。我們如何添加它。

問候, 吉里什

+0

考慮使用以前的問題的答案http://stackoverflow.com/questions/1624095/how-to-add-dropdown-in-excel-sheet-programmatically/1624157#1624157 http://stackoverflow.com/questions/1623266 /如何到創建-Excel工作表數據,直接-來自該網絡的應用程序/ 1623292#1623292 – 2009-10-27 05:22:14

+0

你爲什麼註釋掉調用對.save()?你有錯誤嗎?如果是這樣的話:它是什麼錯誤?權限再次? – 2009-10-27 08:17:11

+0

剛剛下載了ExcelPackage並處理了這個問題。 – 2009-10-27 10:19:06

回答

2

您需要將文件保存到堅持所做的更改。使用save()

try 
     { 
      FileInfo newFile = new FileInfo(@"D:\ExcelFromTemplate.xlsx"); 
      FileInfo template = new FileInfo(@"C:\Example.xlsx"); 

      using (ExcelPackage xlPackage = new ExcelPackage(newFile , template)) 
      { 

       //Added This part 
       foreach (ExcelWorksheet aworksheet in xlPackage.Workbook.Worksheets) 
       { 
        aworksheet.Cell(1, 1).Value = aworksheet.Cell(1, 1).Value; 
       } 

       ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets["My Data"]; 

       ExcelCell cell = worksheet.Cell(5, 1); 
       cell.Value = "15"; 

       //worksheet.Cell(5, 1).Value = "Soap"; 

       xlPackage.Save(); 
       //Response.Write("Excel file created successfully"); 
      } 

     } 
     catch (Exception ex) 
     { 
      //Response.WriteFile(ex.InnerException.ToString()); 
     } 

得到了問題。該徽章是ExcelPackage固有的。 出於同樣的,你必須打開每個表,並做一些改變它得到保存。

在論壇中搜索更多的解釋。

+0

每當我添加xlPackage.Save();那麼它會給我錯誤「對象引用未設置爲對象的實例」。什麼問題? – Girish 2009-10-27 06:53:29

+0

抱歉,延遲忙於某些事情。這個excel包是關於跟隨http://excelpackage.codeplex.com/ – 2009-10-27 09:43:50