Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在firefox浏览器中以javascript将动态html表导出到excel_Javascript_Excel_Firefox - Fatal编程技术网

在firefox浏览器中以javascript将动态html表导出到excel

在firefox浏览器中以javascript将动态html表导出到excel,javascript,excel,firefox,Javascript,Excel,Firefox,想要将动态html表格导出到javascript中的excel我在firefox浏览器中可以做些什么而不在代码中使用activex对象。请帮助我知道javascript中没有用于创建真正excel文件的库,但您可以尝试将html表格导出到扩展名为.xls的文件中。火狐。您还可以手动从DOM树生成csv输出,并让用户将其保存为csv文件。Excel可以从CSV导入。如果用户的计算机上安装了Excel,则可以在Firefox中使用JavaScript进行导入: var tableToExcel =

想要将动态html表格导出到javascript中的excel我在firefox浏览器中可以做些什么而不在代码中使用activex对象。请帮助我知道javascript中没有用于创建真正excel文件的库,但您可以尝试将html表格导出到扩展名为.xls的文件中。

火狐。您还可以手动从DOM树生成csv输出,并让用户将其保存为csv文件。Excel可以从CSV导入。

如果用户的计算机上安装了Excel,则可以在Firefox中使用JavaScript进行导入:

var tableToExcel = (function() {
  var uri = 'data:application/vnd.ms-excel;base64,'
    , 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>'
    , base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }
    , format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) }
  return function(table, name) {
    if (!table.nodeType) table = document.getElementById(table)
    var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
    window.location.href = uri + base64(format(template, ctx))
  }
})()
var tableToExcel=(函数(){
var uri='data:application/vnd.ms excel;base64,'
,模板=“{table}”
,base64=函数{return window.btoa(unescape(encodeURIComponent))}
,format=函数(s,c){返回s.replace(/{(\w+)}/g,函数(m,p){返回c[p];})}
返回函数(表、名称){
如果(!table.nodeType)table=document.getElementById(table)
var ctx={工作表:名称| |'工作表',表:table.innerHTML}
window.location.href=uri+base64(格式(模板,ctx))
}
})()
JSFIDLE实时示例:


您可以动态生成电子表格数据XML格式的Excel文件,该文件允许您以HTML语法自定义表格、单元格样式和格式

要在IE中实现这一点,您需要使用Blob对象,然后调用msSaveBlob方法。 对于FF和Chrome,您只需将href的数据更改为data:application/vnd.ms-excel

function fnExcelReport() {
    var tab_text = '<html xmlns:x="urn:schemas-microsoft-com:office:excel">';
    tab_text = tab_text + '<head><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>';

    tab_text = tab_text + '<x:Name>Test Sheet</x:Name>';

    tab_text = tab_text + '<x:WorksheetOptions><x:Panes></x:Panes></x:WorksheetOptions></x:ExcelWorksheet>';
    tab_text = tab_text + '</x:ExcelWorksheets></x:ExcelWorkbook></xml></head><body>';

    tab_text = tab_text + "<table border='1px'>";
    tab_text = tab_text + $('#myTable').html();
    tab_text = tab_text + '</table></body></html>';

    var data_type = 'data:application/vnd.ms-excel';

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

    if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {
        if (window.navigator.msSaveBlob) {
            var blob = new Blob([tab_text], {
                type: "application/csv;charset=utf-8;"
            });
            navigator.msSaveBlob(blob, 'Test file.xls');
        }
    } else {
        $('#test').attr('href', data_type + ', ' + encodeURIComponent(tab_text));
        $('#test').attr('download', 'Test file.xls');
    }
}
函数fnExcelReport(){
var tab_text='';
tab_text=tab_text+“”;
tab_text=tab_text+‘测试表’;
tab_text=tab_text+“”;
tab_text=tab_text+“”;
tab_text=tab_text+“”;
tab_text=tab_text+$('#myTable').html();
tab_text=tab_text+“”;
var data_type='data:application/vnd.ms excel';
var ua=window.navigator.userAgent;
变量msie=ua.indexOf(“msie”);
如果(msie>0 | |!!navigator.userAgent.match(/Trident.*rv \:11\。/){
if(window.navigator.msSaveBlob){
var blob=新blob([tab_text]{
类型:“应用程序/csv;字符集=utf-8;”
});
msSaveBlob(blob,'testfile.xls');
}
}否则{
$('#test').attr('href',data_type+','+encodeURIComponent(制表符文本));
$('#test').attr('download','testfile.xls');
}
}
工作示例:
YT教程:

Java以何种方式参与?Jsp代码包含一个按钮导出到Excel,当在网格中单击动态表格时,将在Excel中使用css生成。此按钮代码与JavaScriptI连接。我有一个按钮导出到Excel,当单击动态html表格时,将在Excel中生成。请在纯javascript中提供帮助您可以使用数据URI方案生成scv文件。但这有几个限制。另一个选项是将数据发布回服务器,让服务器构建CSV文件并提供服务。感谢它的工作只是一个小问题,它没有将css从表中导出到excel,我如何在这个函数中执行此操作。u plz可以帮助meIs吗?没有办法让它与IE一起工作?在FF中效果很好,但我真的需要一个跨浏览器的解决方案。这里的IE解决方案这对特殊角色不起作用。诸如i、Ü、Ş、ç、Ö等字符没有正确显示。这在IE中有效吗?此外,如果列中有HTML标记,它会显示输出还是原始HTML标记。在IE中,URL更改为一些加密文本,并表示无法显示网页。@Siddharth,请看一下如何使用JavaScript编写文件,然后只需迭代表示表的DOM部分,并将相应的HTML写入文件。请注意,您还需要添加
页眉和相应的页脚。我们可以以同样的方式下载扩展名为“xlsx”的文件吗?