Tag: epplus

使用EPplus将多次插入相同的图像到Excel中

我想用EPplus方法多次插入相同的图像到Excel中。 我在线研究并尝试了此链接中的方法( 使用EPPlus将图像添加到Excel中 ),但在此行中收到以下错误“ 图像 集合中的名称已存在” : var picture = ws.Drawings.AddPicture(a.ToString(), repeatimage); 这是我的代码: public void ExportToExcel() { //for export ExcelPackage objExcelPackage = new ExcelPackage(); //create new workbook string[] filesindirectory = Directory.GetDirectories(Server.MapPath("~/Folder")); string repeatimagepath=@"C:\Users\user\Desktop\Project\Project1\Project1\NewProject\NewProject\Image\repeatimage.png"; Bitmap repeatimage= new Bitmap(repeatimagepath); int count = 0; int count1 = 0; int x = 25; int finalValue = 0; foreach (string […]

如何将excel文件数据导入到c#中的数据表

我将数据从excel文件移动到数据表,其中第10行是列值。所以我使用EPPLUS库(OfficeOpenXml)下面的代码。当我移动到数据表的列是Item,Description,Accountnumber,Tender,Levelnumbers 。这些都是excel文件的第10行,因此,由于顶级列的合并,它会像Item,Column1,Column2,Description,Column3,Column4,Column5,Tender,Column6,Levelnumbers这样的Item,Column1,Column2,Description,Column3,Column4,Column5,Tender,Column6,Levelnumbers 。我需要一个像首先我需要跳过空行(无数据)列Levelnumbers然后说明列名称应该移动到Column4和当前描述的列应该命名为'Edata',所以列序列应该像Item,Column1,Column2,Edata,Column3,Description,Column5,Tender,Column6,Levelnumbers 所以总的来说,通过使用下面的代码我得到了像数据表中的值 Item,Column1,Column2,Description,Column3,Column4,Column5,Tender,Column6,Levelnumbers 1,null,null,Efax,null,Edescription1,null,Tfirst,null,123353 2,null,null,Zfax,null,Zdescription1,null,Tsecond,null,null 3,null,null,Xfax,null,Xdescription1,null,Tthird,null,456546 但它应该像(Levelnumbers空白的跳过的值),如何实现它? Item,Column1,Column2,Edata,Column3,Description,Column5,Tender,Column6,Levelnumbers 1,null,null,Efax,null,Edescription1,null,Tfirst,null,123353 3,null,null,Xfax,null,Xdescription1,null,Tthird,null,456546 使用的代码是 public static DataTable getDataTableFromExcel(string path) { using (var pck = new OfficeOpenXml.ExcelPackage()) { DataTable tbl = new DataTable(); try { using (var stream = File.OpenRead(path)) { pck.Load(stream); } var ws = pck.Workbook.Worksheets.First(); bool hasHeader = true; // adjust it accordingly( i've mentioned […]

Epplus:使用LoadFromCollection时,导出的Excel文件中的布尔列为空

在我的MVC应用程序中,我有一个加载IEnumerable并将其导出到Excel文件的ActionResult。 除非我有一个布尔列,那部分工作很好。 在这种情况下,布尔列的值是空的。 LoadFromCollection不支持布尔列吗? 为了解决这个问题,我可以在模型中创build一个单独的字段,将布尔值转换为string值。 然而,我希望我可以在不需要调整模型的ExcelPackage()块中添加一个语句来完成这项工作。 这是可能的,还是重写模型的唯一可能的解决scheme? public ActionResult ExportToExcel(string _searchString, string _setScale) { // This is the query result set the user wishes to export to file IEnumerable<CreditsAllsExport> exportQuery; /* … irrelevant code redacted … */ exportQuery = exportQuery.AsEnumerable(); byte[] response; using (var excelFile = new ExcelPackage()) { /* … irrelevant code redacted … […]

EPPlus – 组行

EPPlus 4.0.4.0如何设置行分组? 我必须得到附上的照片。 谢谢! 设置:

MVC 5如何上传Excel文件并使用EPPlus(OfficeOpenXml)直到上一个填充的数据行读取行ExcelPackage

我有一个MVCfile upload的解决scheme,上传一个Excel文件,我有一个Excel包的问题,​​它使用Dimension.End.Row属性读取我的Excel文档行到文件末尾,我想直到阅读最后一个填充行,而不是整个电子表格行,因为它popup我的代码与空引用错误,Excel是从外部来源,它是一个约7000行的locking文件,但只有大约3000行填充数据, Dimension.End.Row属性读取整个7000行,因此当我循环并映射行和列时,最后填充的数据行3001的数据行上有空值。 我怎样才能使这只读取在Excel文件中填充行,就像我说我不能修改这个文件为locking和只读,我只能读取它并上传它。 请参阅下面的代码。 [HttpPost] public ActionResult Upload(FormCollection formCollection) { if (Request != null) { HttpPostedFileBase file = Request.Files["UploadedFile"]; if ((file != null && file.ContentLength > 0 && !string.IsNullOrEmpty(file.FileName))) { string fileName = file.FileName; string fileContentType = file.ContentType; byte[] filebytes = new byte[file.ContentLength]; var data = file.InputStream.Read(filebytes, 0, Convert.ToInt32(file.ContentLength)); var suppleirList = new List<CleanSupplierClaim>(); […]

把大量的数据写入excel c#

我需要从数据库表中导出大量的数据到excel(xls / xlsx)文件。 它可能很容易1000万行和更多。 我需要不需要安装Office的开源解决scheme(SpreadsheetGear和Interop解决scheme不适用于我)。 我正在检查两个库:OpenXML SDK和EPPlus。 对于OpenXML SDK,我发现这个方法: private static void Write(string fileName, int numRows, int numCols) { using (var spreadsheetDocument = SpreadsheetDocument.Open(fileName, true)) { WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart; WorksheetPart worksheetPart = workbookPart.WorksheetParts.First(); string origninalSheetId = workbookPart.GetIdOfPart(worksheetPart); WorksheetPart replacementPart = workbookPart.AddNewPart<WorksheetPart>(); string replacementPartId = workbookPart.GetIdOfPart(replacementPart); using (OpenXmlReader reader = OpenXmlReader.Create(worksheetPart)) { using (OpenXmlWriter writer […]

如何使用Epplus从Base64编码的图像在Excel中插入图片

我有一个格式为Base64的图像。 我需要显示从Base64编码图像的图片单元格。

如何预先select要包含在数据透视表中的字段?

我有这个EPPlus代码来创build数据透视表: private void AddPivotTable() { string colAlphaRowNum = string.Format("A{0}", locationWorksheet.Dimension.End.Row+5); ExcelAddressBase eab = locationWorksheet.Cells[colAlphaRowNum]; ExcelRangeBase erb = locationWorksheet.Cells[6, 1, locationWorksheet.Dimension.End.Row, locationWorksheet.Dimension.End.Column]; var pt = locationWorksheet.PivotTables.Add(eab, erb, "Pivotous"); pt.MultipleFieldFilters = true; pt.RowGrandTotals = true; pt.ColumGrandTotals = true; pt.Compact = true; pt.CompactData = true; pt.GridDropZones = false; pt.Outline = false; pt.OutlineData = false; pt.ShowError = true; pt.ErrorCaption […]

如何将date与行匹配,然后使用EPPlus获取最终的列值?

到目前为止,我可以从电子表格中轻松获取数据,只是获取参考号码行,但是我目前不知道如何在获取正确的数据之前将行匹配到数据部分。 我目前不得不从下面的Excel电子表格中提取一些数据: Start date Ref number 29/07/2015 2342326 01/07/2016 5697455 02/08/2016 3453787 02/08/2016 5345355 02/08/2015 8364456 03/08/2016 1479789 04/07/2015 9334578 主要的问题是,是否可以从设定的date读取数据,从行中获取参考号码,例如开始date。 例如,如果我只是想从date设置的数据上个月1日以上。 这将如何最好地实施。 使用基本的OleDb获取列的当前代码示例: using System; using System.Data.OleDb; using System.Text.RegularExpressions; namespace Number_Cleaner { public class NumberCleanerReport { public void runExcel_Report() { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("[*][START OF: NumberExt.xls, Number Extraction]"); Console.ResetColor(); string con = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NumberExt.xls;" […]

从date范围中剥离EPPlus输出中的数据

快速浏览:主要目标是从行中读取设定date的数据,并从设定的date(例如开始date)获取参考编号。 例如,如果我只是想从date设置的数据上个月1日以上。 我目前不得不从下面的Excel电子表格中提取一些数据: Start date Ref number 29/07/2015 2342326 01/07/2016 5697455 02/08/2016 3453787 02/08/2016 5345355 02/08/2015 8364456 03/08/2016 1479789 04/07/2015 9334578 使用EPPlus输出: 29/07/2015 2342326 29/07/2016 5697455 02/08/2016 3453787 02/08/2016 5345355 02/08/2015 8364456 03/08/2016 1479789 04/07/2015 9334578 这部分是好的,但是当我尝试通过date范围去除输出我得到错误,例如使用LINQ我得到以下错误输出。 An unhandled exception of type 'System.InvalidCastException' occurred in System.Data.DataSetExtensions.dll Additional information: Specified cast is not valid. LINQ代码: var […]