aardio 两行代码 调用 libxl 读写 excel
废话不多说, 直接给连接
https://files.cnblogs.com/files/blogs/762462/libxl.7z?t=1713539927&download=true
运行效果:
文件存放路径:
再上代码
import dotNet
import console
xl = dotNet.load("libxl.net", "libxl.net.dll");
xl.import("libxl");
// aardio 的代码
try
{
var book = libxl.BinBook(); // use XmlBook() for xlsx
var sheet = book.addSheet("Sheet1");
sheet.writeStr(2, 1, "Hello, World !");
sheet.writeNum(3, 1, 1000);
book.save("example.xls");
}
catch (e)
{
console.print(e)
}
console.pause()
这里跟官网贴出的c#代码对比一下
class Program
{
// 官网的 C# 代码
static void Main(string[] args)
{
try
{
Book book = new BinBook(); // use XmlBook() for xlsx
Sheet sheet = book.addSheet("Sheet1");
sheet.writeStr(2, 1, "Hello, World !");
sheet.writeNum(3, 1, 1000);
book.save("example.xls");
}
catch (System.Exception e)
{
Console.WriteLine(e.Message);
}
}
}
原本想用 libxl 读写 excel 文件, 就打算用 aardio 调用 C语言 dll 的方式运行
结果让搞的焦头烂额, 突然发现 libxl 本身就有 C# 的调用库, 直接导入, 瞬间感觉世界清静.
想打包独立文件直接用 aardio 自带工具即可.
这里再给出一个示例:
import dotNet
import console
xl = dotNet.load("libxl.net", "libxl.net.dll");
xl.import("libxl");
var book = libxl.BinBook();
var font = book.addFont();
font.size = 36;
var format = book.addFormat();
format.alignH = libxl.AlignH.ALIGNH_CENTER;
format.setBorder(libxl.BorderStyle.BORDERSTYLE_MEDIUMDASHDOTDOT);
format.setBorderColor(libxl.Color.COLOR_RED);
format.font = font;
var sheet = book.addSheet("Sheet1");
sheet.writeStr(2, 1, "Format", format);
sheet.setCol(1, 1, 25);
book.save("format.xls");
console.pause()
可以看到, 转换规则就是类型名全部替换为 var
, 然后设置的属性值添加 libxl
前缀即可.
如果碰到 ref
引用, 像下面这样调用即可
import dotNet
import console
xl = dotNet.load("libxl.net", "libxl.net.dll");
xl.import("libxl");
try
{
var book = libxl.BinBook();
var year = dotNet.int(0, true)
var month = dotNet.int(0, true)
var day = dotNet.int(0, true)
// public bool dateUnpack(double value, ref int year, ref int month, ref int day)
book.dateUnpack(43210.0, year, month, day)
console.print(year, month, day)
}
catch (e)
{
console.print(e)
}
console.pause()
于是, 可以参照官方的 C# 文档愉快的进行开发了.