@北京-没想好 直接QQ通话

Appcan开发笔记:导出Excel文件

Appcan IDE为4.0+;

appcan提供了导出文件的方法 appcan.file.write 文件会自动创建,要解决的事情是Excel用字符串输出,可以考虑 csv(逗号间隔)、HTML、Xml,这些都可以通过拼接字符串导出Excel

下面给出HTML格式的模板,作为记录备份

 1 function writeExcel(data) {
 2     if (!appcan.isArray(data)) {
 3         return;
 4     }
 5     var tmpl = '<html xmlns:v="urn:schemas-microsoft-com:vml"';
 6     tmpl += 'xmlns:o="urn:schemas-microsoft-com:office:office"';
 7     tmpl += ' xmlns:x="urn:schemas-microsoft-com:office:excel"';
 8     tmpl += ' xmlns="http://www.w3.org/TR/REC-html40">';
 9     tmpl += ' <head>';
10     tmpl += ' <meta charset="UTF-8" />';
11     tmpl += '<!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>';
12     tmpl += '<x:Name>Worksheet</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions>';
13     tmpl += '</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head>';
14     tmpl += '<body>';
15     tmpl += '<table>';
16     tmpl += '<thead>';
17     tmpl += '<tr>';
18     tmpl += ' <th>标题1</th>';
19     tmpl += ' <th>标题2</th>'
20     tmpl += '</tr>';
21     tmpl += '</thead>';
22     tmpl += '<tbody>';
23     for (var i = 0; i < data.length; i++) {
24         tmpl += '<tr><td>' + data[i].字段1 + '</td>';
25         tmpl += '<td>' + data[i].字段2 + '</td></tr>';
26     }
27     tmpl += '</tbody>';
28     tmpl += '</table>';
29     tmpl += '</body>';
30     tmpl += '</html>';
31 
32     console.log("开始导出数据");
33 
34     var myDate = new Date().format("yyyyMMddhhmm");
35     appcan.file.write({
36         filePath : '/storage/emulated/0/' + myDate + '.xlsx',
37         content : tmpl,
38         callback : function(err) {
39             if (err) {
40                 appcan.window.openToast('导出不成功', 5000, '5', '0');
41                 //写入出错了
42                 return;
43             }
44             appcan.window.openToast('导出成功' + myDate + '.xlsx', 5000, '5', '0');
45             //写入成功了
46         }
47     });
48 }

 

posted on 2017-07-12 16:01  走路要用腿  阅读(285)  评论(0编辑  收藏  举报

导航

QQ:@北京-没想好