【问题标题】:how to save html table into excel file format using javascript in laravel如何在laravel中使用javascript将html表格保存为excel文件格式
【发布时间】:2015-09-25 20:51:32
【问题描述】:

我正在尝试将 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();
}

按钮是

&lt;input type="button" onclick="exportToExcel()" value="Export to Excel"&gt;

效果很好。

但是,问题是,它只适用于 Chrome 和 microsoft-office:excel。 不适用于其他浏览器(IE7+、Firefox 等)和 open office 4(open office calc、open office math 等)软件。

我在做什么??如何将其他软件和浏览器添加到我的代码中??

但只显示“YOUR HTML AS TABLE”。而不是我的表格值。

【问题讨论】:

  • 它在其他浏览器中以什么方式“不起作用”?错误信息?
  • 没有错误信息。如果单击按钮没有动作。如果在 chrome 中工作并在 excel 文件中仅显示您的 HTML 表格在一个单元格中。不是我的表值。
  • 您通过 uri 查询字符串发送所有数据,该数据有多大?与其他浏览器相比,chrome 对查询字符串的长度有相当大的限制,这可能是它只能在 chrome 中运行的原因。您最好通过 ajax 请求将表数据发布到控制器并返回文件的 url。
  • 我的表有 3 个字段代码是 @foreach($teacher as $teacher) @if($teacher->ttype == 1)
    Teacher Mobile td> 类型
    {{$teacher->tname}} {{$teacher- >tmobile}}班主任

标签: javascript excel laravel-4


【解决方案1】:

你可以使用jsfiddle文件保存库

http://jsfiddle.net/TheSharpieOne/XNVj3/1/

并使用如下:

var nameXclVar = new Blob([TblHtmCodVar], { type: "application/vnd.ms-excel" });

saveAs(nameXclVar, "NamXcl.xls");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 2016-08-19
    • 2014-10-01
    相关资源
    最近更新 更多