2010-08-09 2 views
1

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

в таким же образом, мне нужно, чтобы написать мои 3 DataTable данных в один первенствует (где sheet1 будет conatin dattable1, sheet2 будет conatin dattable2, Sheet3 будет conatin dattable3)

это код, я использую для записи DataTable данные в сетку затем в 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); 
      } 
     } 

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

ответ

0

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

Взгляните на эти ссылки:

Create Excel (.XLS and .XLSX) file from C#

Creating Excel spreadsheets .XLS and .XLSX in C#

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

// Getting the worksheet by its name... 
HSSFSheet sheet = templateWorkbook.GetSheet("Sheet1"); 
Смежные вопросы