(转)libxl操作excel文件aardio库和调用示例
By
admin
at 2021-02-18 • 0人收藏 • 2297人看过
感谢: 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库文件:
使用示例:
这里帖两个使用示例:
1.格式化文本样式:
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. 单元格格式
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.公式
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
登录后方可回帖
很赞,感谢分享~