TLibXL for FWH utf8(Read/Write excel) 2021.12.21
發表於 : 2020-09-01, 11:16
眾所皆知,使用 OLE32 去產生 excel,資料量少還沒關係,資料量一大時間就跟著拉長,久到讓人受不了!
在 ansi 編碼下,filexls 是直接快速產生 excel 檔案的方法之一,
但是,當程式碼移往 utf8 編碼後,這套 library 就生不出 utf8 文字了!
測試幾套軟體,都不慎理想,後來找到一套要錢的軟體 'libXL', 參考網址: https://www.libxl.com/
這套軟體提供了讀、寫功能,樣板檔讀出來填入資料都沒問題!
範例程式碼:
請自行將 key、name 換成自己的(怎麼換?自己想辦法!)
執行結果:
我參考別人的程式碼,將函數重新包裝成 class, 壓縮檔提供了:
libxl.dll <-- 也可以從網站下載最新版本, 目前測試的是 v3.8.8.2
test.prg <-- 範例程式
tlibxl.prg <-- class
tlibxlc.c <-- 低階呼叫,只提供 .c 編譯,不提供 .prg,原因:無良的人太多了!
libxl_test.xlsx <-- 產生的範例檔, 自己編譯成 .exe 產生出來也是這個
在 ansi 編碼下,filexls 是直接快速產生 excel 檔案的方法之一,
但是,當程式碼移往 utf8 編碼後,這套 library 就生不出 utf8 文字了!
測試幾套軟體,都不慎理想,後來找到一套要錢的軟體 'libXL', 參考網址: https://www.libxl.com/
這套軟體提供了讀、寫功能,樣板檔讀出來填入資料都沒問題!
範例程式碼:
代碼: 選擇全部
#include "fivewin.ch"
// #Include "libxl.ch"
func main()
local xBook, cName, cKey, xSheet
cName := "xxx"
cKey := "windows-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
oLibXL := TLibXL():New(cName,cKey)
// oBook := oLibXL:CreateBook() // create .xls
oBook := oLibXL:CreateXMLBook() // create .xlsx
oBook:setLocale('UTF-8')
oBook:setDefaultFont('新細明體',12) // 設定整體字型
//
//if oBook:load('D:\myprog\TMPDOC\test.xlsx')
// msgInfo('載入成功')
//else
// msgStop('載入失敗')
//endif
//
oSheet=oBook:AddSheet("Sheet one(龍礱中文字)")
oSheet:writeStr( 1, 1, "鳧雾")
oSheet:writeStr( 2, 4, "咙驡")
oBook:Save( "libxl_test.xlsx" ) // 另存新檔
oBook:End()
oLibXL:End()
msgInfo('end')
return NIL
執行結果:
我參考別人的程式碼,將函數重新包裝成 class, 壓縮檔提供了:
libxl.dll <-- 也可以從網站下載最新版本, 目前測試的是 v3.8.8.2
test.prg <-- 範例程式
tlibxl.prg <-- class
tlibxlc.c <-- 低階呼叫,只提供 .c 編譯,不提供 .prg,原因:無良的人太多了!
libxl_test.xlsx <-- 產生的範例檔, 自己編譯成 .exe 產生出來也是這個