首页 > 解决方案 > 将数据从表导出到 Excel 工作表时防止列中的自动计算

问题描述

我必须创建一个报告。我的数据库表中有一个列存储一些数学方程(如-1-100),同时将数据从包含数据库数据的报告表中导出到 excel 表中。excel 表中的该列正在给出像(-101)这样的值(自动计算值)。我不希望这种情况发生,我希望将方程导出到 excel。下面是我将表格导出到 excel 的代码。我需要防止在 excel 表中自动计算。请帮忙。

                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 = $('#PrintDiv').prop('outerHTML');
                var ctx = {
                    worksheet: 'Worksheet',
                    table: htmls
                }


                 var link = document.createElement("a");
                link.download = "WorkReport" + new Date().toISOString().replace(/[\-\:\.]/g, "") + ".xls";
                link.href = uri + base64(format(template, ctx));
               link.click();

标签: jqueryhtmlexcel

解决方案


这听起来很明显,但是您是否尝试过禁用自动计算?

公式 > 计算选项 > 手动。


推荐阅读