Tag: filesaver.js

为什么来自.NET Core Web Api的Excel文件已损坏?

我正在使用.NET Core和EPPlus.Core生成Excel文件,旨在创build报告。 不幸的是,Excel数据在服务器和客户端之间(Angular2)被破坏,我使用FileSaver.js将Excel文件保存到磁盘。 这是我的Web API控制器: [HttpGet] public async Task<IActionResult> Get() { try { var report = await _reportService.GetReportAsync(); var mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; var fileBytes = report.Bytes; return File(fileBytes, mimeType, report.Name); } catch (Exception exception) { return StatusCode((int)HttpStatusCode.InternalServerError, exception); throw; } } 这是报告服务: public async Task<Report> GetReportAsync() { byte[] bytes; using (var package = new ExcelPackage()) […]

当从Node.js通过Restify发送到客户端时,XLSX文件被损坏

我正在创build一个使用XLSX node.js库创buildexcel文件的项目,通过Restify将其发送到客户端,然后使用FileSaver.js库将其保存在本地计算机上。 当我将xlsx工作簿写入后端文件时,它打开的很好,但是,当我在客户端上打开它时,它已损坏。 出现错误:“Excel无法打开此文件,文件格式或文件扩展名无效,请检查文件是否损坏,文件扩展名与文件格式是否匹配”。 这里是我编写和发送后端文件的代码: var wopts = { bookType:'xlsx', bookSST:false, type:'binary' }; var workbook = xlsx.write(wb, wopts); res.send(200, workbook); 在前端,我使用XLSX文档中的代码: function s2ab(s) { var buf = new ArrayBuffer(s.length); var view = new Uint8Array(buf); for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; return buf; } saveAs(new Blob([s2ab(response.data)],{type:""}), "test.xlsx"); 任何想法,为什么这是行不通的? 任何帮助将非常感激。 谢谢。

下载从spring MVC控制器(Ajax调用)返回的excel文件

我正在开发一个弹簧引导,springmvc的Web应用程序。 我有一个控制器方法,返回一个excel文件如下: in = new FileInputStream(comparsionreport); out = response.getOutputStream(); response.setHeader("Content-disposition", "attachment; filename=" + comparsionreport.getName()); response.setContentType("application/vnd.ms-excel"); response.addHeader("filename", comparsionreport.getName()); byte[] buffer = new byte[BUFFER_SIZE]; // use bigger if you want int length = 0; while ((length = in.read(buffer)) > 0) { out.write(buffer, 0, length); } in.close(); out.close(); 在视图(jaavscript)中,AJAX调用完成如下: $.ajax({ url : $('#compareFrm').attr('action'), type : 'post', responseType: "arraybuffer", […]

用Django和Angular2下载Excel文件

我有一个项目,我保存在SMB文件夹中的文件,并使用Django的背面和Angular 2的正面。 我已成功地设法下载.csv文件,但下载.xls文件时,它已损坏。 文件中的行如下所示: pipe理员 – 格里沙姆 巴== o'x <* 8X @“1Arial1Arial1Arial1Arial1?Arial1Arial1 $ Arial1Arial1Calibri1 这是我的views.py文件: '''Download file''' def get(self, request, file_name): bicloudreposervice = BiCloudRepoService() file_obj = bicloudreposervice.get_user_file(request.user.email, file_name) file_path = file_obj.name with open(file_path, 'rb') as tmp: if 'xls' in file_name: resp = HttpResponse(tmp, content_type='application/vnd.ms-excel;charset=UTF-8') else: resp = HttpResponse(tmp, content_type='application/text;charset=UTF-8') resp['Content-Disposition'] = "attachment; filename=%s" % file_name […]

nvd3.js饼图导出到angularjs的Excel

我正在使用nvd3.js创build一个饼图。 我想将这个图表导出到Excel。 为了导出,我使用FileSaver.js 我的HTML看起来像: <body ng-controller="MainCtrl"> <button ng-click="exportData()">click</button> <div id="charts"> <nvd3 options="options" data="data"></nvd3> </div> </body> 我的代码如下所示: var app = angular.module('plunker', ['nvd3']); app.controller('MainCtrl', function($scope) { $scope.exportData = function () { alert("function call"); var blob = new Blob([document.getElementById('charts').innerHTML ], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8" }); saveAs(blob, "Report.xls"); }; $scope.options = { chart: { type: 'pieChart', height: 500, x: function(d){return […]