繁星 发表于 2023-8-20 13:48:04

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)



邪恶海盗 发表于 2023-8-20 18:52:34

撸主出个AU3版本的教程呗,让我等小白也学习一下...

anythinging 发表于 2023-8-20 18:52:36

高,实在是高,支持一下!

yohoboy 发表于 2023-8-21 00:56:04

本帖最后由 yohoboy 于 2023-8-21 01:13 编辑

強..試過 OFFICE 2003 OK ...可惜官網要購買才能讀取全部,如果用官網範例只能讀取前300 CELLS 數據。

chzj589 发表于 2023-8-21 11:47:48

如何只读取呢?

邪恶海盗 发表于 2023-8-21 12:37:31

yohoboy 发表于 2023-8-21 00:56
強..試過 OFFICE 2003 OK ...可惜官網要購買才能讀取全部,如果用官網範例只能讀取前300 CELLS 數據。

才300行太少了点吧???

繁星 发表于 2023-8-21 12:55:19

yohoboy 发表于 2023-8-21 00:56
強..試過 OFFICE 2003 OK ...可惜官網要購買才能讀取全部,如果用官網範例只能讀取前300 CELLS 數據。

不看代码,xlBookSetKey已经设置License,不注册会在第一行生成未注册信息提示

繁星 发表于 2023-8-21 12:58:51

chzj589 发表于 2023-8-21 11:47
如何只读取呢?

;------------------Write--------------------------
这里创建表格的去掉
;------------------Read--------------------------

繁星 发表于 2023-8-21 13:00:00

邪恶海盗 发表于 2023-8-20 18:52
撸主出个AU3版本的教程呗,让我等小白也学习一下...

附件有写入和读取的例子

chzj589 发表于 2023-8-21 13:10:40

繁星 发表于 2023-8-21 13:00
附件有写入和读取的例子

例子是写入后读取,我是问读取现有的Excel文件

chzj589 发表于 2023-8-21 13:20:25

繁星 发表于 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)

没反映,读不出来

繁星 发表于 2023-8-21 13:31:22

chzj589 发表于 2023-8-21 13:20
#AutoIt3Wrapper_UseX64 = n
#include
Local $hDLL = DllOpen('libxl32.dll')


你要读取xls,需要创建xlCreateBook

chzj589 发表于 2023-8-21 13:43:46

本帖最后由 chzj589 于 2023-8-21 16:37 编辑

繁星 发表于 2023-8-21 13:31
你要读取xls,需要创建xlCreateBook
谢谢!明白了
挺好的


chzj589 发表于 2023-8-21 17:37:15

chzj589 发表于 2023-8-21 13:43
谢谢!明白了
挺好的


邪恶海盗 发表于 2023-8-21 18:58:02

chzj589 发表于 2023-8-21 17:37


好像数值需要转换,比如日期...
页: [1] 2 3 4
查看完整版本: LibXL库读写Excel表格