Как записать данные более одного листа Excel - PullRequest
1 голос
/ 09 августа 2010

У меня есть 3 таблицы данных. Мне нужно записать эти три данных в таблицу Excel. поскольку мы знаем, что под одним листом Excel я могу иметь (более 1 листа).

таким же образом мне нужно записать мои 3 данных с данными в один Excel (где sheet1 будет содержать таблицу данных1, sheet2 будет содержать таблицу данных2, sheet3 будет содержать таблицу данных3)

это код, который я использую для записи данных в сетку, а затем в Excel

private void DataTableToExcel(DataTable dtResult)
        {
            try
            {
                DataGrid grid = new DataGrid();
                grid.HeaderStyle.Font.Bold = true;
                grid.DataSource = dtResult;
                grid.DataBind();
                // render the DataGrid control to a file
                using (StreamWriter sw = new StreamWriter(Server.MapPath("Report/Report.xls")))
                {
                    using (HtmlTextWriter hw = new HtmlTextWriter(sw))
                    {
                        grid.RenderControl(hw);
                    }
                }
                string filePath = Server.MapPath("~/" + "Report" + "/" + "Report.xls");
                System.IO.FileInfo targetFile = new System.IO.FileInfo(filePath);
                if (targetFile.Exists)
                {
                    Response.Clear();
                    string shortDate = DateTime.Now.ToShortDateString();
                    // Response.AddHeader("Content-Disposition", "attachment; filename=" + "Test");
                    Response.AddHeader("Content-Disposition", "attachment; filename=" + "Emp" + shortDate + ".xls");
                    Response.AddHeader("Content-Length", targetFile.Length.ToString());
                    Response.ContentType = "application/vnd.ms-excel";
                    Response.WriteFile(targetFile.FullName);
                }
            }
            catch (Exception ex)
            {
                WriteLogError(ex.Message);
            }
        }

любая помощь в этом вопросе будет признательна. спасибо.

1 Ответ

0 голосов
/ 09 августа 2010

Вы можете добиться этого, используя NPOI для C #.Действительно прост в использовании.

Взгляните на следующие ссылки:

Создание файла Excel (.XLS и .XLSX) из C #

Создание электронных таблиц Excel .XLS и .XLSX в C #

Вы можете ссылаться на каждый лист внутри рабочей книги с помощью:

 // Getting the worksheet by its name...
 HSSFSheet sheet = templateWorkbook.GetSheet("Sheet1");
...