Export ข้อมูลลง Excel โดยสร้างหน้า Sheet ได้แบบ Dynamic (ใช้ Syncfusion )

การ Export ข้อมูลลง Excel โดยที่เราสามารถสร้าง Sheet ขึ้นมาแบบ Dynamic สามารถใช้ Syncfusion (ไม่ฟรีนะ) จัดการได้ง่ายๆ ทั้งการลงข้อมูลแต่ละเซลล์และสร้าง Sheet ใหม่ได้ง่ายๆ  ตัวอย่างที่ให้ดูจะสามารถ Copy Template จากอีกไฟล์มาได้ด้วย

Imports Syncfusion.XlsIO
Imports System.IO

Partial Class test_test_excel
    Inherits System.Web.UI.Page

    Protected Sub RadButton1_Click(sender As Object, e As EventArgs) Handles RadButton1.Click
        
        Dim templatePath As String = Server.MapPath("~/test/template/")
        Dim outputPath As String = Server.MapPath("~/test/output_excel/")

        Dim templateFile As String
        templateFile = templatePath + "ExportBudget.xlsx"
        Dim templateFile_copy As String
        templateFile_copy = templatePath + "ExportBudgetCopy.xlsx"

        Dim outFile As String = outputPath + Format(Now, "ddMMyyhhmmssfff") + ".xls"

        Dim excelEngine As New ExcelEngine()
        Dim application As IApplication = excelEngine.Excel
        Dim workbook As IWorkbook = Nothing
        Dim workbook_copy As IWorkbook = Nothing
        'open template file
        workbook = application.Workbooks.Open(templateFile)
        workbook_copy = application.Workbooks.Open(templateFile_copy)

        workbook.Worksheets.AddCopy(workbook_copy.Worksheets(0))   'Copy  Template ที่เตรียมไว้มาใช้เป็น Sheet ต่อไป
        workbook.Worksheets(1).Name = "new Sheet"
        Dim sheet As IWorksheet = Nothing
        sheet = workbook.Worksheets(1) 
       

        'row 1,2,3
        'column  1,2,3

        For row_index = 2 To 5
            sheet.SetValueRowCol("หัวข้อรายงาน ", 2, 1)

            sheet.SetValueRowCol("xxxxx", 3, 1)
            sheet.SetValueRowCol("yyyyy", 4, 2)
            sheet.SetValueRowCol("zzzzz", 4, 6)
            row_index += 1

        Next
        'save fies
        workbook.SaveAs(outFile)

        Dim fileexp As String = "ExportBudget.xls"
        'output file as download
        HttpContext.Current.Response.Clear()
        HttpContext.Current.Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", fileexp))
        HttpContext.Current.Response.ContentType = "application/ms-excel"        HttpContext.Current.Response.WriteFile(outFile)
        HttpContext.Current.Response.[End]()       
    End Sub       
End Class

การทำงานก็จะได้ไฟล์ดาวน์โหลดออกมาเป็น Excel เลย
Export Excel

Comments

comments

You may also like...

ใส่ความเห็น