如何通过程序创建Excel模板表单?

5

我正在从模板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文件,但无法添加单元格值。为什么?

我已经尝试了上面代码中针对单元格(5,1)的两种方法。但是Excel表格创建时没有写入单元格值。我们如何添加它呢?


考虑使用之前的问题答案:http://stackoverflow.com/questions/1624095/how-to-add-dropdown-in-excel-sheet-programmatically/1624157#1624157 http://stackoverflow.com/questions/1623266/how-to-create-excel-sheet-data-directly-from-the-net-application/1623292#1623292 - Muhammad Akhtar
你为什么注释掉了对 .Save() 的调用?你遇到了错误吗?如果是这样:是什么错误?权限问题又出现了吗? - marc_s
刚刚下载了ExcelPackage并解决了问题。 - Sachin Chavan
1个回答

4

为了保存所做的更改,您需要保存该文件。使用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本身。为了解决这个问题,您需要打开每个工作表并进行一些更改以保存它。

请搜索论坛以获取更多解释。


每当我添加了xlPackage.Save();,它就会给我一个错误提示:"对象引用未设置到对象的实例。" 这是什么问题??? - Girish
抱歉耽搁了,我忙于其他事情。这个Excel包是否与http://excelpackage.codeplex.com/相关? - Sachin Chavan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接