Tag: 控制器

tableToExcel在IE和Firefox中不起作用

我试图将HTML表格数据导出到Excel文件,但下载function在IE和Firefox中不起作用。 它在Chrome中正常工作。 服务工厂 – aixmmServices.factory('Excel',function($window){ 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 { tableToExcel:function(tableId,worksheetName){ var table=$(tableId), ctx={worksheet:worksheetName,table:table.html()}, href=uri+base64(format(template,ctx)); return href; } }; }); 控制器 – frameLparReportApp.controller('frameLparReportController', function ($scope, $state, frameLparReportServices, Excel, $timeout) { 'use strict'; $("#btnExport").click(function (e) { window.open('data:application/vnd.ms-excel,' + $('#frameLpar').html()); e.preventDefault(); }); $scope.exportToExcel=function(tableId){ // ex: '#my-table' […]

QTvariables数据types的优雅解决scheme

起初我加载一个.xls或.xlsx文件。 问题是:有两个不同的类来处理它们,我不确定在每个函数调用之前,如果没有执行if-else,该怎么办。 我的控制器的一些成员函数可以很容易地通过为每个类(不同的参数types)定义两次来解决。 所以我的问题很大程度上是,如果有一个更好的方法调用类成员函数没有与控制器的解决方法,有两个方法被调用取决于数据types。 意思是我有xlsx类和xls类和一个处理程序,其中每个函数是两个数据types的两倍。

用于ASP.NET MVCfile upload的Skinny控制器

我逐渐将一个经典的ASP网站转换为ASP.Net MVC。 在我的模型文件夹中,我已经进一步将其细分为业务对象(BO),业务逻辑(BLL)和数据访问层(DAL),基本上是模型中的三层架构。 这似乎迄今在数据库操作方面运行良好,并且保持我的控制器不变。 例如,一个典型的控制器看起来像这样: public ActionResult Index() { UserName UserDetails = UserManager.GetUserName(); CarrierList CarrierList = CarrierManager.GetCarrierList(); return View(new CarrierViewModel(CarrierList, UserDetails)); } 基本上我只是使用控制器来传递一个函数到BLL层,然后与DAL和BO层进行交互。 我感到困惑的地方是与非数据库操作相关的逻辑(如file upload)的正确位置。 例如,我正在编写代码来上传Excel文件并将其内容导入到数据库表中。 如果我遵循上面相同的模式,我的控制器应该只包含一个函数,将file upload请求传递给BLL层,如下所示: [HttpPost] public ActionResult Index(HttpPostedFileBase file) { FileManager.ImportExcel(file); return RedirectToAction("Index"); } 问题是,我看到的每个教程或示例file upload和Excel操作将他们的文件和Excel代码直接在控制器中。 例如这里 。 即使Scott Hanselman 在这里的post似乎暗示,在控制器中放置file upload逻辑是可以的。 我的问题是,鉴于我的三层ASP.NET MVC架构和胖模型/瘦身控制器devise的目标,我是否正确地将上传和Excel操作逻辑卸载到模型中的BLL上? 这似乎与我正在尝试做的一致,但是因为我在网上看到的所有例子只是将文件操作逻辑放在控制器中,所以我觉得我正在对付谷物。

从Spring Rest Controller下载文件

我试图通过Spring REST控制器来下载文件。 以下是我的代码 – @RequestMapping(value="/aaa",method=RequestMethod.GET,produces=MediaType.APPLICATION_OCTATE_STREAM_VALUE) public ResponseEntity<byte[]> testMethod(@RequestParam("test") String test) { HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setContentDispositionFromData("attachment","testExcel.xlsx"); responseHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM); File file = new File("C:\\testExcel.xlsx"); Path path = Paths.get(file.getAbsolutePath()); ByteArrayResource resource = new ByteArrayResource(Files.readAllbytes(path)); return new ResposeEntity<byte[]>(resource.getByteArray(),responseHeaders,HttpStatus.OK); } 这被称为button点击。 我点击button后没有任何反应。 在debugging这个java时,我可以看到字节stream。 在Mozilla的开发人员工具中,我可以看到成功的HTTP响应(在该excel文件的字节stream中的响应)。 根据互联网上可用的资源,浏览器应该自动下载文件,但这没有发生。 为什么下载不在浏览器中发生? 还有什么我需要做的,使其工作? 注意:这仅仅是为了POC的目的。 实际上,我必须通过Apache POI或其他一些API从数据库细节生成excel文件。