//列表视图(listview)控件 - CSV 导入导出 import win.ui; import string.csv; 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.csv(" ",,"#"); 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.csv(); // 保存 CSV 到文件 csv.save(path,dataTable); winform.msgbox("CSV 文件导出成功!"); } winform.show(); win.loopMessage();