我有一个问题,我应该将ASP:Table导出到Excel。导出到Excel可以正常工作,所以这是我当前的代码。
string[] htmlTableString = generateHtmlTable(divs);
StringBuilder sb_ExcelData = new StringBuilder();
sb_ExcelData.Append(@"<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'><head><title>KzB</title>");
sb_ExcelData.Append(@"<body lang=EN-US style='mso-element:header' id=h1><span style='mso--code:DATE'></span><div class=Section1>");
sb_ExcelData.Append("<DIV style='font-size:12px;'>");
sb_ExcelData.Append(htmlTableString[0]); // HERE IS MY PROBLEM
sb_ExcelData.Append("</div></body></html>");
string strFile = "Kzb_"+"Jahr_"+dd_Year.SelectedValue+ "_Export_" + DateTime.Now.Day.ToString() + "-" + DateTime.Now.Month.ToString() + "-" + DateTime.Now.Year.ToString() + ".xls";
string strcontentType = "application/excel";
Response.ClearContent();
Response.ClearHeaders();
Response.BufferOutput = true;
Response.ContentType = strcontentType;
Response.AddHeader("Content-Disposition", "attachment; filename=" + strFile);
Response.Write(sb_ExcelData.ToString());
Response.Flush();
Response.Close();
Response.End();
在代码中,您可以看到string [] htmlTableString,其中有我的ASP:Table内容。现在,我想为每个包含的字符串在Excel中显示一个新的工作表/工作表/选项卡。那么我如何获得此功能?
我搜索了很多东西,但是我不想使用外部库。
通过使用来自Glix @Glix的信息,我创造了一种可能性。我使用EEPlus Lib创建多个工作表。
对于像这样的例子:
private MemoryStream createMemoryStream(DataTable[] tables, int[] divs)
{
MemoryStream ms = new MemoryStream();
ExcelPackage pck = new ExcelPackage();
for (int i = 0; i < tables.Length; i++)
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Division_" + divs[i].ToString());
ws.Cells["A1"].LoadFromDataTable(tables[i], true);
}
pck.SaveAs(ms);
return ms;
}
MemoryStream可以用于Response.BinaryWrite。这样,您可以下载带有不同选项卡/工作表的Excel文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句