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

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

感谢: fish(290xxxx037)  分享

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


说到这个libxl ,之前的文章 https://www.chengxu.xyz/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

很赞,感谢分享~

登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...