将asp:Table转换为excel格式
我能够从asp:table生成excel文件,但是在生成excel文件的同时打开文件会发出警告。 您尝试打开的文件格式与文件扩展名指定的格式不同我已经从此链接find解决此警告的解决方法http://www.aspsnippets.com/Articles/Solution-ASPNet-GridView-Export-to-Excel -The文件-你-是-试图对开放式IS-IN-A-不同的格式,比规定的,由这文件extension.aspx
所以我已经使用ClosedXML库,但同时添加数据到Excel表它只接受数据,数据集格式,我得到的数据string格式,所以它生成空白的Excel表。 请检查我尝试过的代码。
LoadDetailsToTable(); System.IO.StringWriter sw = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(sw); tbl_loctbl.RenderControl(hw); using (XLWorkbook wb = new XLWorkbook()) { var ws = wb.Worksheets.Add("asd"); ws.Cell(2, 1).InsertTable(sw.ToString()); HttpContext.Current.Response.Clear(); HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; HttpContext.Current.Response.AddHeader("content-disposition", String.Format(@"attachment;filename=newfile.xlsx")); using (MemoryStream MyMemoryStream = new MemoryStream()) { wb.SaveAs(MyMemoryStream); MyMemoryStream.WriteTo(HttpContext.Current.Response.OutputStream); MyMemoryStream.Close(); } HttpContext.Current.Response.End(); }
这里LoadDetailsToTable ()函数将数据加载到asp表中。 tbl_loctbl是表格ID。
不幸的是,你使用的两个标记是不兼容的。 Excel中的HTML表格标记是支持的,但它不在OpenXML中,这是您的库期望输出的内容。
在引擎盖下,Excel需要一个有效的XML文件格式; HTML虽然松散地支持,但不是原生的xlsx格式。
有可用的库将HTML转换为互联网上的openxml,但是这可以通过迭代你的数据集,并使用OpenXML SDK实际添加单元格和行来解决
- 如何使用LINQ to Entity将数据导出到Excel?
- 如何在将数据表导出到.xls文件时在asp.net中加粗string响应
- Excel单元格alignment:例如xlLeft,xlRight或xlCenter的数值?
- 如何将数据从数据集导出到c#中的行可扩展的Excel?
- 阅读Sharepoint C#中的Excel(.xlsx)文件到gridview
- 打开一个网页作为Excel文件,但与.xlsx文件
- Excel Open XML错误:创build简单示例时发现“无法读取的内容”
- Gridview和Excelsorting
- 将数据源绑定到c#.net中的gridview后,删除上载的Excel文件