首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileSaver.js saveAs(Xlsx)

FileSaver.js saveAs(Xlsx)
EN

Stack Overflow用户
提问于 2017-02-19 00:58:04
回答 1查看 7.1K关注 0票数 2

我使用filesaver.js将我的div (带有多个表)导出为excel。我可以使用下面的代码作为XLS导出它。

代码语言:javascript
复制
var blob = new Blob([document.getElementById('exportable').innerHTML], {
    type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"
});
saveAs(blob, "Test Report using FileSaver.xls");

但是,我想将我的div导出到XLSX。有人能帮忙吗?我尝试过将MIME类型更改为XLSX,但没有起到作用。

EN

回答 1

Stack Overflow用户

发布于 2017-02-19 05:01:40

Update W3C没有实现.xlsx,因此浏览器也是如此。但是您可以使用alsql,一个js库,它将数据导出为有效的.xlsx,这里是小提琴或运行在代码下面。

代码语言:javascript
复制
function myCtrl($scope) {
    $scope.exportData = function () {
        alasql('SELECT * INTO XLSX("Report.xlsx",{headers:true}) FROM ?',[$scope.items]);
    };
    
    $scope.items = [{
        name: "John Smith",
        email: "j.smith@example.com",
        dob: "1985-10-10"
    }, {
        name: "Jane Smith",
        email: "jane.smith@example.com",
        dob: "1988-12-22"
    }, {
        name: "Jan Smith",
        email: "jan.smith@example.com",
        dob: "2010-01-02"
    }, {
        name: "Jake Smith",
        email: "jake.smith@exmaple.com",
        dob: "2009-03-21"
    }, {
        name: "Josh Smith",
        email: "josh@example.com",
        dob: "2011-12-12"
    }, {
        name: "Jessie Smith",
        email: "jess@example.com",
        dob: "2004-10-12"
    }];
};
代码语言:javascript
复制
<script src="https://cdn.jsdelivr.net/alasql/0.3.6/alasql.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.7.2/xlsx.core.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app>
<div ng-controller="myCtrl">
    <button ng-click="exportData()">Export</button>
    <br />
    <div id="exportable">
    <table width="100%">
        <thead>
            <tr>
                <th>Name</th>
                <th>Email</th>
                <th>DoB</th>
            </tr>
        </thead>
        <tbody>
            <tr ng-repeat="item in items">
                <td>{{item.name}}</td>
                <td>{{item.email}}</td>
                <td>{{item.dob | date:'MM/dd/yy'}}</td>
            </tr>
        </tbody>
    </table>
    </div>
</div>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42322458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档