Tag: epplus

ASP.NET MVC EPPlus下载Excel文件

所以我正在使用花哨的EPPlus库来编写Excel文件并将其输出给用户下载。 对于以下方法,我只是使用一些测试数据来最小化代码,然后我将添加我用于以后连接到数据库的代码。 现在我可以下载一个文件了,但是当我打开文件时,Excel会抱怨它不是一个有效的文件而且可能已损坏。 当我去查看文件时,它说它大了0KB。 所以我的问题是,我哪里错了? 我假设它与MemoryStream有关。 之前没有做过很多关于流的工作,所以我不确定在这里使用什么。 任何帮助,将不胜感激! [Authorize] public ActionResult Download_PERS936AB() { ExcelPackage pck = new ExcelPackage(); var ws = pck.Workbook.Worksheets.Add(“Sample1”); ws.Cells[“A1”].Value = “Sample 1”; ws.Cells[“A1”].Style.Font.Bold = true; var shape = ws.Drawings.AddShape(“Shape1”, eShapeStyle.Rect); shape.SetPosition(50, 200); shape.SetSize(200, 100); shape.Text = “Sample 1 text text text”; var memorystream = new MemoryStream(); pck.SaveAs(memorystream); return new FileStreamResult(memorystream, “application/vnd.openxmlformats-officedocument.spreadsheetml.sheet”) […]

保存为使用EPPlus?

有没有人知道如何使用package.Saveas函数? package.SaveAs(tempFolderPathAlt + saveas + “.xlsx”); 此时以红色下划线标出以下错误: ‘OfficeOpenXml.ExcelPackage.SaveAs(System.IO.Stream)’的最佳重载方法匹配有一些无效的参数 目前我正在以下列方式保存文件。 FileStream aFile = new FileStream(tempFolderPathAlt + saveas + “.xls”, FileMode.Create); byte[] byData = package.GetAsByteArray(); aFile.Seek(0, SeekOrigin.Begin); aFile.Write(byData, 0, byData.Length); aFile.Close(); 但是这种方式包仍然是开放的,我不能使用它使用的文件。 save as将正确关闭包,但它不接受我的文件路径。 编辑 我试过这个: using (FileStream aFile = new FileStream(tempFolderPathAlt + saveas + “.xlsx”, FileMode.Create)) { byte[] byData = package.GetAsByteArray(); aFile.Seek(0, SeekOrigin.Begin); package.SaveAs(aFile); //aFile.Write(byData, 0, […]

如何使用EPPlus将excel行解析回类型

EPPlus有一个方便的LoadFromCollection方法,可以将我自己类型的数据导入工作表。 例如,如果我有一个类: public class Customer { public int Id { get; set; } public string Firstname { get; set; } public string Surname { get; set; } public DateTime Birthdate { get; set; } } 然后是以下代码: var package = new ExcelPackage(); var sheet = package.Workbook.Worksheets.Add(“Customers”); var customers = new List{ new Customer{ Id = 1, […]

使用EPPlus,我试图将gridview导出到Excel工作表

Excel告诉我有无法读取的数据,所以在我说尝试恢复信息后,它会显示正确的数据。 但是,当我打开xlsx的文本文件时,我得到整个页面的所有html,而不仅仅是gridview(这可能是Excel正在讨论的不可读的内容)。 这是我的代码: public void ExcelDownload(object sender, EventArgs e) { DataSet _MailingListUsers = db.GetMailingList(); DataTable mailTable = _MailingListUsers.Tables[0]; DumpExcel(mailTable); } private void DumpExcel(DataTable tbl) { using (ExcelPackage pck = new ExcelPackage()) { //Create the worksheet ExcelWorksheet ws = pck.Workbook.Worksheets.Add(“Mailing List”); //Load the datatable into the sheet, starting from cell A1. Print the column names on […]

使用EPPlus将图像添加到Excel中

我试图使用EPPlus将相同的图像多次添加到excel文件中。 我使用以下代码来执行此操作: Image logo = Image.FromFile(path); ExcelPackage package = new ExcelPackage(info); var ws = package.Workbook.Worksheets.Add(“Test Page”); for(int a = 0; a < 5; a++) { ws.Row(a*5).Height = 39.00D; var picture = ws.Drawings.AddPicture(a.ToString(), logo); picture.SetPosition(a*5, 0, 2, 0); } 一切都很完美,所有图像都正确添加,但它们向下拉伸。 以下是其中一张图片的样子: 但它在excel中看起来像这样: 我必须调整每张图片开头的每一行,但我不认为这会影响它。 是否有办法添加图片/做我想做的事情,还是我必须手动复制粘贴图片? (我以图片为例) 谢谢。