跳到主要內容

[ASP.net] Create excel by NPOI

在asp.net要產生excel可以用很方便的原件NPOI,
要怎麼使用這邊有個範例
  1. 請先去NPOI Project下載最新的dll
  2. reference NPOI 並且import
    Imports NPOI.HSSF.UserModel
    Imports NPOI.SS.UserModel
    Imports NPOI.SS.Util
    Imports NPOI.HSSF.Util
    Imports NPOI.POIFS.FileSystem
    Imports NPOI.HPSF
  3. 建立excel的 workbook和第一個sheet
    Dim workbook As New HSSFWorkbook()
    Dim sheet As HSSFSheet = workbook.CreateSheet("Sheet")
  4. 開始寫入Row資料
    Dim rowIndex As Integer = 0
    Dim row As HSSFRow = sheet.CreateRow(rowIndex)
    row.CreateCell(0).SetCellValue("Name")
    row.CreateCell(1).SetCellValue("Phone")
    row.CreateCell(2).SetCellValue("Addess")
    row.CreateCell(3).SetCellValue("gender")
    row.CreateCell(4).SetCellValue("Email")
    rowIndex = +1
  5. 寫入檔案
    Dim fileName As String = Server.MapPath(".") + "/test.xls"
    Using fileData = New FileStream(fileName, FileMode.Create)
    workbook.Write(fileData)
    End Using
  6. 如果要讓使用者下載可以用下面的code
    Using exportData = New MemoryStream()
    workbook.Write(exportData)
    Dim saveAsFileName As String = String.Format("test.xls", DateTime.Now).Replace("/", "-")
    Response.ContentType = "application/vnd.ms-excel"
    Response.AddHeader("Content-Disposition", String.Format("attachment;filename={0}", saveAsFileName))
    Response.Clear()
    Response.BinaryWrite(exportData.GetBuffer())
    Response.[End]()
    End Using

留言

這個網誌中的熱門文章

[WEB]連線 HTTPS 網站發生驗證失敗導致基礎連接已關閉

某支透過 WebClient 物件去呼叫第三方API的程式,突然有天無法使用 經過測試出現下列的錯誤 基礎連接已關閉: 傳送時發生未預期的錯誤。 InnerException : 驗證失敗,因為遠端群體已經關閉傳輸資料流。 原來是第三方的服務已經不支援 TLS 1.0 我方的程式是用.net Framework 4.0開發了 得強制讓webclient改用 TLS 1.1 或 TLS 1.2 感謝黑大提供解決方法 在程式中加入 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12  的設定就解決了這個問題 WebClient wc = new WebClient(); ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; 參考資料:暗黑執行緒

[SQL] SQL依照你的排序條件 找出目前資料的前一筆與下一筆。 Find Pre and Next DataRows of current Datarow by your order condition

有時候需要用SQL找出前一筆跟後一筆資料 用SQL的TOP是沒有辦法做到 這個時候就可以這個語法 select * from ( SELECT TOP 1 * FROM [Article] where Poid {CurrentPoid} order by CreateDate ASC) t2 找出目前PK id前一個與後一個的資料(依照想要排序順序) 那如果指示想要一個資料行呈現的話 可以改用下面的SQL語法 讓這兩筆資料join在同一筆 select Pre.*,Nex.* from (SELECT TOP 1 * ,1 tID FROM [dbo].[Article] where Poid {CurrentPoid} order by CreateDate ASC) Nex on Pre.tID=Nex.tID

Win10電腦 強制開啟IE瀏覽器 by VB script

 用Notapad寫下以下的內容 With CreateObject("InternetExplorer.Application") .visible = True .Navigate [Url]           .Left = 0           .Top = 0           .Height = 1024           .Width = 1280 End With 然後存檔成 .vbs 檔案 之後點選檔案就會自動啟動IE 目前測試過在WIN10 版本能正常執行