找回密码
 加入
搜索
查看: 3154|回复: 69

LibXL库读写Excel表格

  [复制链接]
发表于 2023-8-20 13:48:04 | 显示全部楼层 |阅读模式
本帖最后由 繁星 于 2023-9-29 13:34 编辑

利用假期同步到最新4.2.0.0版本,顺便修正下错误
共计413个函数,因为我只用了其中不到十分之一,想全部测试一遍是个大工程,所以大部分函数都未经测试,若发现问题可以留言或私信给我改正
参考官方文档https://www.libxl.com/documentation.html?lang=c
游客,如果您要查看本帖隐藏内容请回复


最基本读写:
#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[xlSheetLastRow($hSheet)][xlSheetLastCol($hSheet)]
                        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)



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 5金钱 +335 贡献 +4 收起 理由
cashiba + 60 很给力!
zghwelcome + 35 赞一个!
chzj589 + 80 + 2 赞一个!
fcurrk + 60 很给力!
afan + 2 赞一个!

查看全部评分

发表于 2023-8-20 18:52:34 | 显示全部楼层
撸主出个AU3版本的教程呗,让我等小白也学习一下...
发表于 2023-8-20 18:52:36 | 显示全部楼层
高,实在是高,支持一下!
发表于 2023-8-21 00:56:04 | 显示全部楼层
本帖最后由 yohoboy 于 2023-8-21 01:13 编辑

強..試過 OFFICE 2003 OK ...可惜官網要購買才能讀取全部,如果用官網範例只能讀取前300 CELLS 數據。
发表于 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版本的教程呗,让我等小白也学习一下...

附件有写入和读取的例子
发表于 2023-8-21 13:10:40 | 显示全部楼层
繁星 发表于 2023-8-21 13:00
附件有写入和读取的例子

例子是写入后读取,我是问读取现有的Excel文件
发表于 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[xlSheetLastRow($hSheet)][xlSheetLastCol($hSheet)]
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
发表于 2023-8-21 13:43:46 | 显示全部楼层
本帖最后由 chzj589 于 2023-8-21 16:37 编辑
繁星 发表于 2023-8-21 13:31
你要读取xls,需要创建xlCreateBook

谢谢!明白了
挺好的


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2023-8-21 17:37:15 | 显示全部楼层
chzj589 发表于 2023-8-21 13:43
谢谢!明白了
挺好的


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2023-8-21 18:58:02 | 显示全部楼层

好像数值需要转换,比如日期...
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-26 09:21 , Processed in 0.132429 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表