aardio 文档

aardio 范例: CSV 导入导出示例

//CSV 导入导出
import win.ui;
import string.database;
import fsys.dlg;
/*DSG{{*/
var winform = win.form(text="CSV 导入导出示例";right=759;bottom=469)
winform.add(
btnExport={cls="button";text="导出 CSV";left=597;top=415;right=732;bottom=450;db=1;dr=1;z=3};
btnImport={cls="button";text="导入 CSV";left=25;top=415;right=160;bottom=450;db=1;dl=1;z=2};
listview={cls="listview";left=51;top=23;right=700;bottom=385;db=1;dl=1;dr=1;dt=1;edge=1;z=1}
)
/*}}*/

import win.ui.grid;
var grid = win.ui.grid(winform.listview);//创建数据视图

// 导入 CSV 文件到 listview
winform.btnImport.oncommand = function(id,event){
    var path = fsys.dlg.open("CSV 文件|*.csv|所有文件|*.*||","选择要导入的 CSV 文件");
    if(!path) return;

    var db = string.database(" ",,"#");
    var dataTable = db.load(path);  

    //如果 CSV 有注释,尝试提取列标题  
    var fields = db.parseComment();

    //设置列标题
    if(fields) grid.setColumns(fields);

    //grid.setTable 的参数较自由,dataTable 可以是多个数组组成的数组,也可以是包含名值对的表组成的数组
    grid.setTable(dataTable)  
}

// 从 listview 导出到 CSV 文件
winform.btnExport.oncommand = function(id,event){

    var dataTable =  grid.getTable(true);
    var path = fsys.dlg.save("CSV 文件|*.csv||","选择保存位置");
    if(!path) return;

    // 创建 CSV 数据库
    var csv = string.database();

    // 保存 CSV 到文件
    csv.save(path,dataTable);  

    winform.msgbox("CSV 文件导出成功!");
}

winform.show();
win.loopMessage();

Markdown 格式