(转)libxl操作excel文件aardio库和调用示例

By admin at 2021-02-18 • 0人收藏 • 524人看过

感谢: fish(290xxxx037)  分享

https://github.com/btx638/LibXL-aardio


说到这个libxl ,之前的文章 https://www.htmlayout.cn/t/342 里面 /zgmf-x-20a/ 也对 libxl.dll 进行过封装 , 他的Git工程代码: https://github.com/zgmf-x-20a/libxl


针对这两个封装, 可以自己去试一试, 哪个顺手用哪个, 

这里分享的库智能提示还不是很完善, 需要自己去查看文档相互对照.


对于我们这些使用者来说总是不会嫌弃库太多,O(∩_∩)O哈哈~

下面看官们自己对比下他们两个的封装 , 顺道还能学习下库是怎么封装的吧

aaz.libxl库文件:

aaz.zip

使用示例:

example.zip


这里帖两个使用示例:

1.格式化文本样式:

image.png

import aaz.libxl;

var book = aaz.libxl.createBook()
book.setKey( )

var f = {};
var format = {};
var customNumFormats = {
    "0.0";
    "0.00";
    "0.000";
    "0.0000";
    "#,###.00 $";
    "#,###.00 $[Black][<1000];#,###.00 $[Red][>=1000]"
}

for(i=1;#customNumFormats;1){
    f[i] = book.addCustomNumFormat(customNumFormats[i])
}

for(i=1;#customNumFormats;1){
	format[i] = book.addFormat()
	format[i].numFormat = f[i]
}

var sheet = book.addSheet( "Custom formats" )
sheet.setCol( 0, 0, 20, null, 0 )
sheet.writeNum( 2, 0, 25.718, format[1] )
sheet.writeNum( 3, 0, 25.718, format[2] )
sheet.writeNum( 4, 0, 25.718, format[3] )
sheet.writeNum( 5, 0, 25.718, format[4] )

sheet.writeNum( 7, 0, 1800.5, format[5] )

sheet.writeNum( 9, 0, 500, format[6] )
sheet.writeNum( 10, 0, 1600, format[6] )

book.save( "\custom.xls" )
book.release()

2. 单元格格式

image.png

import aaz.libxl;

var book = aaz.libxl.createBook()
book.setKey()

var font = book.addFont()
font.setName("Impact").setSize(36)

var format = book.addFormat()

format.config = {
    alignH = 2;
    border = 12;
    borderColor = 2;
    font = font;
}

var sheet = book.addSheet( "Custom" )
sheet.writeStr( 2, 1, "Format", format )
sheet.setCol( 1, 1, 25 ) 

book.save( "\format.xls" )
book.release()

execute("pause")

3.公式

image.png

import aaz.libxl;

var book = aaz.libxl.createXMLBook();
book.setKey( )

var boldFont = book.addFont(0);
boldFont.bold = 1;

var titleFont = book.addFont(0);
titleFont.name = "Arial Black"
titleFont.size = 16;

var titleFormat = book.addFormat();
titleFormat.font = titleFont;

var headerFormat = book.addFormat();
headerFormat.alignH = 2/*_ALIGNH_CENTER*/
headerFormat.border = 1/*_BORDERSTYLE_THIN*/
headerFormat.font = boldFont;
headerFormat.fillPattern = 1 /*_FILLPATTERN_SOLID*/
headerFormat.patternForegroundColor = 47 /*COLOR_TAN*/

var descriptionFormat = book.addFormat();
descriptionFormat.borderLeft = 1 /*BORDERSTYLE_THIN*/

var amountFormat = book.addFormat();
amountFormat.numFormat = 5
amountFormat.borderLeft = 1
amountFormat.borderRight = 1

var totalLabelFormat = book.addFormat();
totalLabelFormat.borderTop = 1
totalLabelFormat.alignH = 3
totalLabelFormat.font = boldFont

var totalFormat = book.addFormat();
totalFormat.numFormat = 5
totalFormat.border = 1
totalFormat.font = boldFont
totalFormat.fillPattern = 1
totalFormat.patternForegroundColor = 13

var signatureFormat = book.addFormat();
signatureFormat.alignH = 2
signatureFormat.borderTop = 1

var sheet = book.addSheet( "Invoice" )
sheet.writeStr(2, 1, "Invoice No. 3568", titleFormat)

sheet.writeStr(4, 1, "Name: John Smith")
sheet.writeStr(5, 1, "Address: San Ramon, CA 94583 USA")

sheet.writeStr(7, 1, "Description", headerFormat)
sheet.writeStr(7, 2, "Amount", headerFormat)


sheet.writeStr( 8, 1, "Ball-Point Pens", descriptionFormat);
sheet.writeNum(8, 2, 85, amountFormat);
sheet.writeStr( 9, 1, "T-Shirts", descriptionFormat);
sheet.writeNum(9, 2, 150, amountFormat);
sheet.writeStr( 10, 1, "Tea cups", descriptionFormat);
sheet.writeNum(10, 2, 45, amountFormat);

sheet.writeStr( 11, 1, "Total:", totalLabelFormat);
sheet.writeFormula(11, 2, "=SUM(C9:C11)", totalFormat);

sheet.writeStr(14, 2, "Signature", signatureFormat);

sheet.setCol( 1, 1, 40, null, 0);
sheet.setCol(2, 2, 15, , 0);

book.save("\invoice.xlsx")
book.release()

4.数据读取

io.open()

import aaz.libxl;

var book = aaz.libxl.createBook();

book.setKey()

book.load("\example.xls")

var sheet = book.getSheet(0)
if( sheet ){

	var s = sheet.readStr( 2, 1 )
	io.print(s)

	
	var d = sheet.readNum( 3, 1 )
	io.print( d )
	

	var s = sheet.readStr( 4, 1 )
	io.print(s)
}
book.release()

execute("pause")


1 个回复 | 最后更新于 2021-03-24
2021-03-24   #1

很赞,感谢分享~

登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前在学aardio+halcon机器视觉.
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
苏扬博客:苏扬博客
C大Aardio论坛:Aar爱好者论坛
简码教程网:简码编程
AARDIO语言QQ群:70517368
本 站 主 站:Stm32cube中文网
Htmlayout界面在线学习文档
Sciter中文在线文档Sciter在线学习文档
aardio在线手册Aardio在线手册

赞助商:才仁机械
下载站:非凡软件站
Loading...