LibXL库读写Excel表格
本帖最后由 繁星 于 2023-9-29 13:34 编辑利用假期同步到最新4.2.0.0版本,顺便修正下错误
共计413个函数,因为我只用了其中不到十分之一,想全部测试一遍是个大工程,所以大部分函数都未经测试,若发现问题可以留言或私信给我改正
参考官方文档https://www.libxl.com/documentation.html?lang=c
**** Hidden Message *****
最基本读写:
#include 'libxl.au3'
#include <Array.au3>
Local $sFileName = 'Test.xlsx'
Local $BookHandle = xlCreateXMLBook()
If $BookHandle Then
Local $hSheet = xlBookAddSheet($BookHandle, 'Sheet1')
If $hSheet Then
For $i = 0 To 1000 - 1
For $j = 0 To 10 - 1
xlSheetWriteStr($hSheet, $i, $j, '测试' & '-' & $i & '-' & $j)
Next
Next
xlBookSave($BookHandle, $sFileName)
EndIf
EndIf
If xlBookLoad($BookHandle, $sFileName) Then
For $i = 0 To xlBookSheetCount($BookHandle) - 1
Local $hSheet = xlBookGetSheet($BookHandle, $i)
If $hSheet Then
Local $Array
For $x = 0 To UBound($Array) - 1
For $y = 0 To UBound($Array, 2) - 1
$Array[$x][$y] = xlSheetReadStr($hSheet, $x, $y)
Next
Next
_ArrayDisplay($Array, xlBookGetSheetName($BookHandle, $i))
EndIf
Next
EndIf
xlBookRelease($BookHandle)
撸主出个AU3版本的教程呗,让我等小白也学习一下... 高,实在是高,支持一下! 本帖最后由 yohoboy 于 2023-8-21 01:13 编辑
強..試過 OFFICE 2003 OK ...可惜官網要購買才能讀取全部,如果用官網範例只能讀取前300 CELLS 數據。 如何只读取呢?
yohoboy 发表于 2023-8-21 00:56
強..試過 OFFICE 2003 OK ...可惜官網要購買才能讀取全部,如果用官網範例只能讀取前300 CELLS 數據。
才300行太少了点吧??? yohoboy 发表于 2023-8-21 00:56
強..試過 OFFICE 2003 OK ...可惜官網要購買才能讀取全部,如果用官網範例只能讀取前300 CELLS 數據。
不看代码,xlBookSetKey已经设置License,不注册会在第一行生成未注册信息提示 chzj589 发表于 2023-8-21 11:47
如何只读取呢?
;------------------Write--------------------------
这里创建表格的去掉
;------------------Read-------------------------- 邪恶海盗 发表于 2023-8-20 18:52
撸主出个AU3版本的教程呗,让我等小白也学习一下...
附件有写入和读取的例子 繁星 发表于 2023-8-21 13:00
附件有写入和读取的例子
例子是写入后读取,我是问读取现有的Excel文件 繁星 发表于 2023-8-21 12:58
;------------------Write--------------------------
这里创建表格的去掉
;------------------Read-- ...
#AutoIt3Wrapper_UseX64 = n
#include <Array.au3>
Local $hDLL = DllOpen('libxl32.dll')
;Local $sFileName = @ScriptDir & '\Test.xlsx'
Local $sFileName = @ScriptDir & '\导入购进.xls'
Local $BookHandle = xlCreateXMLBook()
;~ xlBookVersion($BookHandle)
xlBookSetKey($BookHandle) ;must License
#cs
;------------------Write--------------------------
Local $hSheet = xlBookAddSheet($BookHandle, 'Sheet1')
For $i = 0 To 1000 - 1
For $j = 0 To 10 - 1
xlSheetWriteStr($hSheet, $i, $j, '测试' & '-' & $i & '-' & $j)
Next
Next
xlBookSave($BookHandle, $sFileName)
;------------------Read--------------------------
#ce
xlBookLoad($BookHandle, $sFileName)
Local $Count = xlBookSheetCount($BookHandle)
For $i = 0 To $Count - 1
Local $hSheet = xlBookGetSheet($BookHandle, $i)
Local $Array
For $x = 0 To UBound($Array) - 1
For $y = 0 To UBound($Array, 2) - 1
$Array[$x][$y] = xlSheetReadStr($hSheet, $x, $y)
Next
Next
_ArrayDisplay($Array)
Next
xlBookRelease($BookHandle)
DllClose($hDLL)
FileDelete($hDLL)
没反映,读不出来
chzj589 发表于 2023-8-21 13:20
#AutoIt3Wrapper_UseX64 = n
#include
Local $hDLL = DllOpen('libxl32.dll')
你要读取xls,需要创建xlCreateBook 本帖最后由 chzj589 于 2023-8-21 16:37 编辑
繁星 发表于 2023-8-21 13:31
你要读取xls,需要创建xlCreateBook
谢谢!明白了
挺好的
chzj589 发表于 2023-8-21 13:43
谢谢!明白了
挺好的
chzj589 发表于 2023-8-21 17:37
好像数值需要转换,比如日期...