Как создать лист Excel из шаблона Excel лист программно? - PullRequest
2 голосов
/ 27 октября 2009

Я создаю лист Excel из листа Excel Tempalte.

У меня есть код

  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, такой же, как файл шаблона, но не может добавить значение ячейки. Зачем?

Я пробовал это двумя способами, как в приведенном выше коде для ячейки (5,1). Но лист Excel создает без записи значения ячейки. Как мы можем добавить это.

С уважением, Гириш

1 Ответ

3 голосов
/ 27 октября 2009

Вам необходимо сохранить файл, чтобы сохранить сделанные изменения. Использование 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. Для того же самого вы должны открыть каждый лист и внести некоторые изменения, чтобы сохранить его.

Поиск по форуму для более подробного объяснения.

...