2014-04-01 94 views
1

因此,我在這裏要做的是使用epplus將簡單的html表格寫入xlsx(excel)文件。代碼IVE走到這一步是如何使用epplus將我的html表格寫入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()); 
     } 

    } 

現在這將創建一個空的工作簿。和所有我想現在要做的就是寫這個表我有我的

查看:

<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") 

到工作簿。但我只是不知道如何以及從哪裏開始。

感謝任何指向正確方向的指針。

回答

5

我猜:你有你的HTML錶轉換爲.NET數據表 的 首先這可以在這裏找到Convert Table

下一頁您使用此代碼(考慮您所創建的數據表被稱爲「數據」 :

 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() 
+0

謝謝@Yosoyke – Dave

+0

這是否也包括html表格樣式? – user327999