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 }