Tag: asp.net mvc

创buildExcel文件时,保存它的大小加倍

我正在使用EPPlus创build并保存一个Excel文件。 该方法如下所示: public static void CreateAnnuityExcelSheet(List<Calculation> cList, FormCollection form, int DTCyear, string path) { var StartValue = cList[0].StartValue; var radio = form["advanceOrArrears"]; string fileName = cList[0].CalculationName; FileInfo info = new FileInfo(path); using (ExcelPackage package = new ExcelPackage(info)) { ExcelWorksheet ws = package.Workbook.Worksheets.Add(fileName); //Styles for the sheet package.Save(); } } 我也试过使用.SaveAs(信息),但结果对我来说是一样的。 那么,我现在有文件保存在C:\ ExcelFiles \下,并且假设它是大约6kb,但是当我在Excel中打开它并尝试closures它时,Excel想要我保存它。 当我这样做,大小双打(〜12kb)。 我曾尝试打开未保存的,并保存的文件,在记事本+ […]

提取KeyValue对,并使用jQuery将其转换为JSON(列和行)

我正在研究Asp.net MVC。 我想将Excel数据导入到我的一个网格中。 我使用ExpandoObject (dynamic)读取Excel文件,然后将其转换为键/值对。 我想知道如何提取KeyValue对,并以JSON格式从该键/值对生成一个头和数据行。 数据将如下所示: 我想把这个KeyValue转换成Header和Row,如下所示: [ {"CustomerName" : "Messi", "City":"Buenos Aires", "Country" :"Argentina"}, {"CustomerName" : "Ronaldo", "City":"Lisbon", "Country" :"Portugal"}, {"CustomerName" : "Persie", "City":"Amsterdam", "Country" :"Netherlands"}, {"CustomerName" : "Ronnie", "City":"London", "Country" :"England"} ] 我已经使用了以下jQuery代码片段,但它不起作用: var arr = []; $.each(dataReceivedFromServer, function (i, data) { var d = data.Key; arr.push({ d: data.Value, }); }); 如果我这样做,它显示我[{"d":"Messi"},{"d":"Buenos […]

MVC运行一个存储过程导出到entity framework外的Excel

我有一个表中的列表,我使用该列表来显示我可以通过单击导出button生成的报告的列表 – 然后我想导出button采取问题代码并导出存储过程输出到Excel。 我不能使用entity framework,因为我使用1个存储过程,每个问题代码生成一组不同的列 [HttpPost] public ActionResult Export(string QCode = "") { if (QCode != "") { GridView gv = new GridView() { AutoGenerateColumns = true }; // Run Stored Procedure Code Not using Entity Framework gv.DataSource = StoredProcedure(QCode).ToList(); gv.DataBind(); Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment; filename=ExportQuestion_" + QCode + ".xls"); Response.ContentType = "application/ms-excel"; […]

ASP.NET MVC下载提示不出现

我正在尝试在控制器操作中生成一个Excel .xlsx文件。 我想让网站显示下载提示下载结果文件。 控制器操作执行正常,但不显示下载提示。 什么都没发生。 我试过了: MemoryStream mstream = … //generated file; return File(mstream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", model.DisplayName + ".xlsx"); 我试过了: return new FileStreamResult(mstream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = model.DisplayName + ".xlsx" }; 我试过了: Response.Clear(); Response.AddHeader("Content-Disposition", "attachment; filename=" + model.DisplayName + ".xlsx"); Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.Write(mstream.ToArray()); Response.End(); return Content(""); 我甚至尝试将文件保存到磁盘,然后通过文件path返回 return File(filepath, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") 我究竟做错了什么? 谢谢!

在MVC Web环境中,使用GridView生成表单分离的excel

我使用下面的代码,我想知道是否可以以某种方式使这个工作表分隔excel文件与自己的工作表中的每一行。 DataTable dt = new DataTable(); SqlConnection objcon = new SqlConnection(connectionString); string sql = "SELECT * FROM table"; SqlDataAdapter objda = new SqlDataAdapter(sql, objcon); objda.Fill(dt); GridView gvreport = new GridView(); gvreport.DataSource = dt; gvreport.DataBind(); string date = DateTime.Now.ToString("yyyy_MM_dd_HHmmss"); string fileName = string.Format("TheFilename_{0}.xls", date); Response.ClearContent(); Response.AddHeader("content-disposition", "attachment; filename=" + fileName); Response.ContentType = "application/excel"; System.IO.StringWriter sw = […]

仿真Excel数字精度C#.NET

Excel精确系统 Excel具有数字精度的IEEE 754规范的修改版本。 有关Excel如何计算的更多信息可以在这里find。 总结: 数字只存储在15个主要数字中。 在任何计算之前,Excel试图将该数字表示为2的幂(因为它是二进制表示) 如果数不是2的简单幂,则它使用几何级数来找出最接近的二进制数。 如果这个数字真的很小,Excel表示它是一个简单的2的幂。 问题 其他语言,在我的情况下, C#.NET ,以不同的方式实现数字精度。 所以,当你试图模拟一个电子表格,你最终会得到一些精度不匹配。 例 打开Excel并在任何单元格中插入此公式: =1+1/9000-1. 那么你会注意到结果与下面公式得到的结果不一样: =1/9000 我不想改变Excel的这种行为,我只是想模仿它。 现在在C#中创build一个简单的程序,并使用Decimal数进行相同的计算。 我使用小数来表示数字。 但它可能是我们Float的两倍,结果是一样的。 decimal result = 1.0M + 1.0M / 9000.0M – 1.0M; Console.WriteLine(result.ToString("N30")); 题 有没有什么办法可以模拟Excel的数字精度。 这样我可以得到与Excel相同的结果? 编辑 正如@DStanley所提到的,使用double可以解决上面的例子,但是对于其他情况仍然不起作用,例如: Excel中: =1+0.000000000000001665280326829110-1 0.000000000000000000000000000000 C#: double result = 1.0 + 0.000000000000001665280326829110 – 1.0; Console.WriteLine(result.ToString("N30")); 0.000000000000001554312234475220

ASP.NET MVC FileResult正在破坏文件

我一直试图让我的ASP.NET MVC网站导出一些数据作为Excel文件。 几个小时后,我以为NPOI只是在生产垃圾,所以我转到了EPPlus。 我在LINQPad中testing了它,并创build了一个正常的XLSX文件,所以我将代码移到了MVC应用程序中。 再次,我得到损坏的文件。 偶然碰巧看临时目录,看到由EPPlus创build的文件是3.87KB,完美的工作,但FileResult返回一个FileResult的文件,这是损坏的。 为什么发生这种情况? 我读了一个地方,这是服务器GZip压缩造成的,所以我把它关掉了,它没有任何效果。 有人,请帮助我,我会走出我的脑海…这是我的代码。 [HttpGet] public FileResult Excel( CenturyLinkOrderExcelQueryModel query) { var file = Manager.GetExcelFile(query); // FileInfo return File(file.FullName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", query.FileName); }

将Excel XML 2003工作表文件转换为C#中的.XLSX文件

我正在实现一个解决scheme,用户将.XLS,.XLSX和.CSV文件加载到ASP MVC应用程序中。 我正在使用Gembox电子表格插件来读取文件,到目前为止它运行良好,但用户需要加载一个具有特定模式的.XML文件。 我不知道哪个Excel版本应该等同于这个文件,但是我在XML文件中find了这个版本,并说明了它的Excel模式: <?xml version="1.0"?> <?mso-application progid="Excel.Sheet"?> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> 这暗示我和旧的.XLS文档架构相同的结论,我已经find了一个快速的谷歌search后,但我不知道这个文件是哪个协议或它属于哪个标准/库。 任何人都可以阐明如何阅读这个? 如果我用Microsoft Excel打开这个文件,可以阅读,但我不知道如何。 编辑 在Sunil的回答之后,我研究了更多,这是一个Microsoft Excel 2003 XML文件,所以我尝试使用Microsoft的Open XML SDK尝试阅读这个文件,我发现这个代码: public static void ConvertExcelXmltoXlsx(Stream fileStream, string filePath, string fileName) { string excelFileName = Path.GetFileNameWithoutExtension(fileName) + ".xslx"; OpenXmlReader reader = OpenXmlReader.Create(fileStream); while (reader.Read()) { if (reader.ElementType == typeof(CellValue)) { reader.GetText(); } […]

nopcommerce在写入操作期间发生磁盘错误。 (从HRESULTexception:0x8003001D(STG_E_WRITEFAULT))

我工作在nopcommerce解决scheme3.90,而导入产品,从Excel文件我得到这个exception。 我的代码如下 public virtual void ImportProductsFromXlsx(Stream stream) { try { #region Import business Logic using (var xlPackage = new ExcelPackage(stream)) { //get the first worksheet in the workbook var worksheet = xlPackage.Workbook.Worksheets.FirstOrDefault(); if (worksheet == null) throw new NopException("No worksheet found"); //the columns var properties = GetPropertiesByExcelCells<Product> (worksheet); var manager = new PropertyManager<Product> (properties); var […]

如何读取上传的Excel文件并将其直接保存到数据库?

有没有办法上传Excel文件,并直接将其内容保存到SQL Server? 谢谢!! 编辑 : 我不想把它保存为二进制。 我想读它的竞争,并将其保存到数据库,每个Excel列的内容到数据库表列等等… … –