Tag: asp.net web api

使用EPPlus excel文件下载WebApi – 打开 – 不可读的内容错误 – 修复

在我的extjs webclient上,我点击一个button,下载一个excel模板并填充数据。 当我点击CHROMEpopup来打开excel文件,它给了我下面的excel错误消息。 有谁知道我可以解决这个问题? 实际的文件看起来很好。 这是我的webapi代码 public HttpResponseMessage CreatePosSheet(string cName, string calcMethod, string username, int cid, HttpRequestMessage Request) { string templatePath = HttpContext.Current.Server.MapPath(@"~\tempLocation\"); string templateFileName = System.Configuration.ConfigurationManager.AppSettings["TemplateFileName"]; string templateName = string.Format("{0}{1}", templatePath, templateFileName); FileInfo xlTemplate = new FileInfo(templateName); HttpResponseMessage response; response = Request.CreateResponse(HttpStatusCode.OK); MediaTypeHeaderValue mediaType = new MediaTypeHeaderValue("application/octet-stream"); //MediaTypeHeaderValue mediaType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.Content = […]

在WebAPI中以返回HttpResponseMessage作为Excel文件的问题

我创build了WebAPI,它使用closedxml nuget返回一个excel文件。 基本上它将我的DataTable转换为Excel。 我指的是下面的几个链接, 如何在ASP.NET WebAPI中返回一个文件(FileContentResult) 在ASP.NET Web API中从控制器返回二进制文件 问题:在服务器path上生成的excel没有问题。 但是,当我通过webAPI将它作为HttpResponseMessage返回时下载相同的Excel文件已损坏。 它说,“该文件已损坏,无法打开”:( 我的代码: [System.Web.Http.AcceptVerbs("GET", "POST")] public HttpResponseMessage ExportExcel() { DataTable scoredRecords = Getdt(); if (scoredRecords.Rows.Count > 0) { var path = @"C:\Raghav\asdf.xlsx"; XLWorkbook wb = new XLWorkbook(); wb.Worksheets.Add(scoredRecords, "sample"); // excel getting generated on server properly-No issues. wb.SaveAs(path); HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK); var stream […]

Excel数据连接到API

我有一个Excel客户端和一个API,都在我的控制之下。 我想要实现的是在Excel中的数据连接,可以通过点击一个button,而不是下载xml / csv / xls文件,由最终用户刷新。 好处是用户可以拥有广泛的自定义图表,每次使用新的数据集时都不需要重新构build自定义图表,例如每周透视报告等。 当使用单租户SQL Server或Access作为数据源时,这是非常直接的,但是这里的要求有点不同: 数据必须通过API来完成,因为数据转换必须完成。 用户应该进行每次刷新authentication(即基本身份validation)。 支持Excel 2010 数据连接“从networking”似乎是一个很好的候选人,但是这只能用于HTML表格,据我所知。 OData连接似乎只与Power Query和Professional Plus软件包一起提供。 沿着“From Web”连接路线并将数千行xml转换为html还是有其他select是否有意义? UPDATE 我最终创build了一个向下兼容Excel 2003的HTML表格,不需要客户端VBA。

使用MVC 5和WebAPI下载excel文件

这就是我正在使用的:AngularJS,BreezeJS在客户端。 对于服务器,我正在使用Web API和MVC 5。 我一直在寻找如何从服务器上构build和检索excel电子表格的方法,但是我不知所措。 我发现这个名为linqtocsv的插件可以极大地帮助我们构build出linq的csv文件。 codeproject的例子可以在这里find,nuget链接可以在这里find。 我也发现在stackoverstream的问题上很好的用法: Web API的HttpResponseMessage内容返回是不完整的 所以在执行上面的插件 – linq到csv之后,按照提到的stackover问题,似乎没有任何工作。 这里是我的服务器端代码(都直接从已经提到的链接): [HttpPost] public HttpResponseMessage DistributorReport(JObject formValues) { try { var cqmo = formValues.ToObject<DistributorCQMO>(); var query = new FindDistributorsByLocationQuery { States = cqmo.States.Select(x => x.id), Cities = cqmo.Cities.Select(x => x.id), CitiesExclusion = cqmo.ExcludedCities.Select(x => x.id), ZipCodes = cqmo.ZipCodes.Select(x => x.id), ZipCodesExclusion = cqmo.ExcludedZipCodes.Select(x […]

从Tableau 8.1访问OData Feed时,OData格式不正确

我无法连接到OData提要,因为我得到这个错误消息:“不良OData格式。请确保您使用的URL指向一个有效的OData来源” 我可以在浏览器中访问url(并获得预期的JSON响应),并且可以通过Excel(Power Query)连接到OData feed。 有没有人有类似的问题? 你认为这个问题是什么? 我在Windows 8上使用Tableau 8.1,并通过ASP.NET Web API 2开发我的OData服务。

ASP.NET OData v3 vs Excel 2013:忽略分页?

我正在尝试将OData Web Api与Excel 2013集成,但是我正面临一些麻烦 场景: 大型数据库视图,大约40百万行(MySQL) 数据库第一EDMX(entity framework6.1.0) EntitySetController.Get()将数据提供给客户端(WebApi 2.1) Excel 2013消耗OData提要 我的服务器端代码必须考虑到后面的巨大数据,所以我用[Queryable(PageSize=50)]装饰我的Get() public class SerieValuesController : EntitySetController<SerieValue, int> { #region DB Property private EDMWarehouseViewsContainer _DB = null; public EDMWarehouseViewsContainer DB { get { if (_DB == null) _DB = new EDMWarehouseViewsContainer(); return _DB; } } #endregion [Queryable(PageSize=50)] public override IQueryable<SerieValue> Get() { var options […]

使用Excel从API中提取数据

在编码方面,我是一个完全新手,非常感谢您在项目中的帮助。 我想从一个网站提供的API(资源URL: http : //api.opensignal.com/v2/networkrank.json )从Excel中提取数据。 你能请教build议我该怎么去做。 或者你可以帮助一个示例代码。 非常感谢

用AngularJS和EPPlus生成CSV的问题

我发送一个对象数组回到服务器(WebApi),使用EEPlus做一个ExcelPackage.GetAsByteArray(); 然后将其发送回AngularJS前端。 我将信息存储在DataTable中。 DataTable table = new DataTable(); table.Columns.Add("WOS Name", typeof(string)); table.Columns.Add("Consultant Name", typeof(string)); table.Columns.Add("Client", typeof(string)); table.Columns.Add("Cohort", typeof(string)); table.Columns.Add("Not Started", typeof(int)); table.Columns.Add("Awaiting Wos Release", typeof(int)); table.Columns.Add("Released To Consultant", typeof(int)); table.Columns.Add("Released To Wos", typeof(int)); table.Columns.Add("Awaiting Wos Signoff", typeof(int)); table.Columns.Add("Current", typeof(int)); table.Columns.Add("WOS Overdues", typeof(int)); table.Columns.Add("Consultant Overdues", typeof(int)); foreach (var stat in statistics) { table.Rows.Add( stat.WosName, stat.ConsultantName, stat.Client, […]

从Asp Net Web API控制器导出到Excel

我正在使用新的Web应用程序,即使用Web API作为业务层和淘汰Js作为客户端框架工作进行绑定。 我有一个要求,如将一定的search条件传递给Web API控制器,并从数据库获取数据,并创build和发送Excel / MS-Word文件作为一个可下载的内容。 我对Web API和Knock都是新手,我在网上search并获得部分解决scheme,我正在寻找这个用例的更优化的解决scheme。 以下是我的代码: 客户: function GetExcelFile() { var $downloadForm = $("<form method='POST'>") .attr("action", baseUrl + "api/FileHandler/GetExcelFileTest") .attr("target", "_blank") $("body").append($downloadForm); $downloadForm.submit(); $downloadForm.remove(); } 点击button点击此代码片段即可创build表单并从Web API获取响应。 Web API代码: [HttpPost] public HttpResponseMessage GetExcelFileTest() { var response = new HttpResponseMessage(); //Create the file in Web App Physical Folder string fileName = Guid.NewGuid().ToString() + […]

WebAPI返回文件和下载没有启动

有一个非常奇怪的问题,当我返回一个文件作为“HttpResponseMessage”,它工作时,IAM返回PDF文件,但是当我返回一个XLS文件(Excel文件)它不。 这是响应标题,我试着将内容types改为“application / vnd.ms-excel” HTTP/1.1 200 OK Cache-Control: no-cache Pragma: no-cache Content-Length: 316928 Content-Type: application/octet-stream Content-Encoding: UTF-8 Expires: -1 Server: Microsoft-IIS/8.0 Content-Disposition: attachment; filename=f.xls Content-Description: File transfer Charset: UTF-8 X-AspNet-Version: 4.0.30319 X-SourceFiles: =?UTF-8?B?QzpcZGV2XHRmc1xrYmFzcnZcZUdhaW4uV2Vic2l0ZXMuRm9yZWNhc3RpbmdcYXBpXFByaW50XENhbGxpbmdMaXN0QnlDb21wYW55T3JDdXNvdG1lcklk?= X-Powered-By: ASP.NET Date: Fri, 06 Dec 2013 07:49:47 GMT 当我在记事本中打开xls文件时,看起来像是结果。 我find一个非常奇怪的解决scheme,将其转换为base64,并链接到“data:application / octet-stream; base64”,这将开始下载,你不知道文件的名称,所以用户不会理解把它保存为XLS文件… 现在回到结果,不会开始下载…任何build议? 来自fiddler2的回应Raw HTTP/1.1 200 OK Cache-Control: no-cache Pragma: […]