2009-10-27 63 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