我试图将 html(blade.php 文件)表保存到 Laravel 中的 Excel 文件中。 我的 JavaScript 代码
function exportToExcel() {
var htmls = "";
var uri = 'data:application/vnd.ms-excel;base64,';
var template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>';
var base64 = function(s) {
return window.btoa(unescape(encodeURIComponent(s)))
};
var format = function(s, c) {
return s.replace(/{(\w+)}/g, function(m, p) {
return c[p];
})
};
htmls = "YOUR HTML AS TABLE"
var ctx = {
worksheet : 'Worksheet',
table : htmls
}
var link = document.createElement("a");
link.download = "export.xls";
link.href = uri + base64(format(template, ctx));
link.click();
}
按钮是
<input type="button" onclick="exportToExcel()" value="Export to Excel">
效果很好。
但是,问题是,它仅适用于 Chrome 和 microsoft-office:excel。 不适用于其他浏览器(IE7+、Firefox 等)和 Open Office 4(Open Office calc、Open Office Math 等)软件。
我做什么?如何将其他软件和浏览器添加到我的代码中?
但只显示“YOUR HTML AS TABLE”。而不是我的表值。
最佳答案
你可以使用jsfiddle文件保护库
http://jsfiddle.net/TheSharpieOne/XNVj3/1/
并按如下方式使用:
var nameXclVar = new Blob([TblHtmCodVar], { type: "application/vnd.ms-excel" });
saveAs(nameXclVar, "NamXcl.xls");
关于javascript - 如何在laravel中使用javascript将html表格保存为excel文件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31284291/