日期:2019年11月18日
作者:Commas
註釋:學習就是爲了忘記,讓我們來了解一下一種無需安裝Microsoft Excel和.NET框架,直接調用libxl庫操作Excel的方法吧…
目錄
一、libxl的簡介及下載說明
(1)定義:
LibXL 是一個不依賴Microsoft Excel和.NET框架,可以直接讀取和寫入Excel文件的庫。該庫可以在C,C ++,C#,VB6,Delphi,Fortran,Python和其他語言中使用。其優點如下:
- 直接讀寫Excel文件;
- 簡單的互操作,不再依賴Excel;
- 高性能寫入
(2)下載:
- 百度搜索libxl
- 進入libxl官網主頁
- 進入libxl下載頁面
- 解壓後文件的說明
文件名稱 | 說明 |
---|---|
bin | 32位動態鏈接庫(非VB6所用庫) |
bin64 | 64位動態鏈接庫(非VB6所用庫) |
doc | 函數說明的文檔,用C++講解的 |
examples | 多種語言使用libxl的例子 |
include_c | C的文件頭 |
include_cpp | C++的文件頭 |
lib | 32位微軟Visual C++的庫 |
lib64 | 64位微軟Visual C++的庫 |
net | .NET使用的文件 |
stdcall | 使用stdcall調用約定的32位動態庫(VB6可以調用的libxl庫) |
二、VB6使用libxl庫操作Excel
- VB6示例libxl的說明
- VB6示例源碼的解說
Option Explicit
Private Sub Form_Load()
On Error Resume Next
Dim book As Long '存放操作Excel的指針
Dim sheet As Long '存放操作當前sheet的指針
'創建一個操作xls格式的Excel的一個實例(指針)
book = xlCreateBook()
If book <> 0 Then
'許可證綁定
'license name:購買許可證的name
'license key:購買許可證的key
'Call xlBookSetKey(book, "license name", "license key")
'新增一個工作表sheet
sheet = xlBookAddSheet(book, "Sheet1", 0)
If sheet <> 0 Then
'在新增的Sheet1中寫入數據
'在Sheet1的第三行第二列單元格寫入字符串"Hello, World !"
'(位置計算說明:3 = 2 + 1 , 2 = 1 + 1 )
Call xlSheetWriteStr(sheet, 2, 1, "Hello, World !", 0)
'在Sheet1的第四行第二列單元格寫入數值123.456
'(位置計算說明:4 = 3 + 1 , 2 + 1 + 1)
Call xlSheetWriteNum(sheet, 3, 1, 123.456, 0)
End If
'在sheetindex = 0 的工作表(Sheet1)
'前面插入一個工作表MySheet2
sheet = xlBookInsertSheet(book, 0, "MySheet2", 0)
'在sheetindex = 1 的工作表(Sheet1)
'前面插入一個工作表MySheet3
sheet = xlBookInsertSheet(book, 1, "MySheet3", sheet)
'計算該Excel總共有多少個工作表(sheet)
Dim sheetCnt As Integer: sheetCnt = xlBookSheetCount(book)
Me.Caption = "SheetCount = " & sheetCnt
'刪除sheetindex = 1 的工作表(MySheet3)
Call xlBookDelSheet(book, 1)
'保存該Excel,並命名爲"example.xls"
Call xlBookSave(book, "example.xls")
'釋放操作Excel的資源
Call xlBookRelease(book)
End If
End Sub
- VB6示例無許可證的返回結果
- VB6示例有許可證的返回結果
三、libxl庫操作Excel的流程示意圖
本文參考:
1、http://www.libxl.com/download.html
2、https://blog.csdn.net/zt_xcyk/article/details/72846042
版權聲明:本文爲博主原創文章,如需轉載,請給出:
原文鏈接:https://blog.csdn.net/qq_35844043/article/details/103116752