如何使用epplus将我的html表格写入excel文件
所以我试图在这里做什么是使用epplus写一个简单的HTML表格到一个xlsx(excel)文件。 代码是这么远的
控制器:
public void saveToExcel(string tbl) { using (ExcelPackage p = new ExcelPackage()) { p.Workbook.Worksheets.Add("demo"); ExcelWorksheet ws = p.Workbook.Worksheets[1]; ws.Name = "Demo"; Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment; filename=ExcelDemo.xlsx"); Response.BinaryWrite(p.GetAsByteArray()); } }
现在这将创build一个空的工作簿。 而现在我想要做的就是把这张桌子写在我的桌子上
视图:
<Table id="tbl" name="tbl"> <tr> <td> Title 1 </td> <td > Title 1 </td> <td> Title 1 </td> </tr> <tr> <td > Row 1 </td> <td> Row 1 </td> <td> Row 1 </td> </tr> <tr> <td > Row 2 </td> <td> Row 2 </td> <td> Row 2 </td> </tr> <tr> <td > Row 2 </td> <td> Row 2 </td> <td> Row 2 </td> </tr> </table> @Html.ActionLink("saveToExcel", "saveToExcel")
到工作簿。 但我只是不知道如何以及从哪里开始。
感谢任何正确的方向指针。
我猜:首先你必须把你的HTML表转换成一个.NET Datatable这可以在这里find转换表
接下来你使用这个代码(考虑你创build的数据表被称为'data':
Dim attachment As String = "attachment; filename=MyExcelPage.xlsx" Dim epackage As ExcelPackage = New ExcelPackage Dim excel As ExcelWorksheet = epackage.Workbook.Worksheets.Add("ExcelTabName") excel.Cells("A1").LoadFromDataTable(data, True) HttpContext.Current.Response.Clear() HttpContext.Current.Response.ClearHeaders() HttpContext.Current.Response.ClearContent() HttpContext.Current.Response.AddHeader("content-disposition", attachment) HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" HttpContext.Current.Response.BinaryWrite(epackage.GetAsByteArray()) HttpContext.Current.Response.End() epackage.Dispose()