虚表运行效果:
使用libxl库保存的excel文件效果:
处理代码:
import win.ui;
import godking.vlistEx
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add(
button={cls="button";text="虚表写入excel";left=280;top=400;right=450;bottom=460;z=2};
vlistEx={cls="vlistEx";text="自定义控件";left=10;top=10;right=750;bottom=350;z=1}
)
/*}}*/
//设为仅文本模式,提高处理速度
winform.vlistEx.onlyText = true
//生成数据
var t = {}
for(i=1;100;1){
var tt = {}
for(n=1;50;1){
..table.push(tt,i*10000+n)
}
table.push(t,tt)
}
//生成标题数组
var fields = {}
for(n=1;50;1){
..table.push(fields,"列"++n)
}
//虚表填充
winform.vlistEx.setTable(t,fields/*列标题*/,50/*列宽*/,/*对齐方式*/,/*字典转为数组*/,/*字符串转为Utf8*/)
winform.button.oncommand = function(id,event){
import godking.libxl
var book = godking.libxl(".xlsx","Sheet1")
var sheet = book.sheet()
//写表头
var fmtHeader = book.addFormat()
fmtHeader.config = {
font = book.addFont({name="黑体",size=12,bold=true}), /*字体 book.addFont()*/
alignH = 2, /*水平对齐方式 _LIBXL_ALIGNH_*/
alignV = 1, /*垂直对齐方式 _LIBXL_ALIGNV_*/
border = 1, /*边框样式 _LIBXL_BORDERSTYLE_*/
wrap=true
}
sheet.setTable(1,1,winform.vlistEx.getColumnText(),fmtHeader)
//写内容
var fmt = book.addFormat()
fmt.config = {
font = book.addFont({name="仿宋",size=12,color=0xFF0000}), /*字体 book.addFont()*/
alignH = 2, /*水平对齐方式 _LIBXL_ALIGNH_*/
alignV = 1, /*垂直对齐方式 _LIBXL_ALIGNV_*/
border = 1, /*边框样式 _LIBXL_BORDERSTYLE_*/
wrap=true
}
var t = winform.vlistEx.getTable()
sheet.setTable(2,1,t,fmt)
//保存
book.save("d:\1212.xlsx")
book.release()
//打开
import process
process("d:\1212.xlsx")
}
winform.show();
win.loopMessage();