Tag: closedxml

ClosedXML – C#中的行和列

我正在做一个ASP.net的Excel项目,我试图给一个特定的单元格(M2,N2,O2,P2,Q2)添加一些不同的颜色(红色)。 using (DataTable dt = new DataTable()) { sda.Fill(dt); using (XLWorkbook wb = new XLWorkbook()) { wb.Worksheets.Add(dt, "Customers"); Response.Clear(); Response.Buffer = true; Response.Charset = ""; Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment;filename=Excel.xlsx"); using (MemoryStream MyMemoryStream = new MemoryStream()) { wb.SaveAs(MyMemoryStream); MyMemoryStream.WriteTo(Response.OutputStream); Response.Flush(); Response.End(); } } 我试图在wb.Worksheets.Add(dt, "Customers");之后添加一些行wb.Worksheets.Add(dt, "Customers"); 但我找不到方法。 我试图实现这一点: dt.Rows(13, 14, 15, 16, 17).Style.Fill.BackgroundColor = XLColor.Red;

无法使用C#将逗号值存储在ClosedXML单元格中

我试图使用ClosedXML库将值“10,23”存储在Excel文件中,但插入的值是“1023”。 我有的代码是: XLWorkbook workbook = new XLWorkbook(); IXLWorksheet worksheet = workbook.Worksheets.Add("sheet1"); worksheet.Cell(0, 0).Value = "10,23"; workbook.SaveAs("c:\temp\file.xlsx");

在ClosedXML中,如何按列sorting工作表?

在使用asp / MVC的C#中,应用程序根据填充到特定列的数据生成一个Excel .xlsx文件,效果很好。 但目标是提供额外的工作表,使用相同的列,但sorting在特定的列,如列“J” var wb = new XLWorkbook(); var ws = wb.Worksheets.Add("Proj Info"); var ws2 = wb.Worksheets.Add("Sort By Dates"); 工作表ws的值由variables或公式填充,数据是正确的,但无法对列进行sorting ws.AutoFilter.Column("J"); //no, nothing changes ws.Column("J").Sort(); -> this shifts all the columns up but does not sort ws.Column("J").Sort(XLSortOrder.Ascending); ->same, doesnt sort only shifts 更新:ws.Sort(9); 在sorting工作,但问题是,列10有一个公式,我需要sorting在该列。 ws.Cell("J" + c).FormulaR1C1 = "=C$2-F" + c; 有了这个? 它不会被分类。 […]

如何获取合并单元格在Excel中使用的行数,使用ClosedXml和C#

作为一个概述,我目前正在从我的数据库中导出数据,并将其导出到Excel工作表。 我已经使用ClosedXml格式化了一些单元格(即合并单元格等)在excel表格中,现在我很less遇到一个小问题,我现在可以解决这个问题。 我想用背景颜色填充单元格,但阻碍的是合并的单元格。 我无法为合并的单元格使用的行中的所有单元格着色。 在Excel中的当前输出是这样的: 我试过的解决scheme正确地填充了合并的单元格,但行中相邻的未合并单元格都没有填充背景颜色。 有人可以给我一个想法去解决这个问题吗? 这是我一直在努力的一个样本POC代码, private static void ToExcel(System.Data.DataTable dataTable, HttpResponseBase response, string fileName) { using (XLWorkbook wb = new XLWorkbook()) { wb.CalculateMode = XLCalculateMode.Auto; var ws = wb.Worksheets.Add(dataTable, "OKR Quater Report"); ws.Tables.FirstOrDefault().ShowAutoFilter = false; var colRange = ws.Columns(); colRange.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Left; colRange.Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; var headingCells = ws.Row(1).Cells(); headingCells.Style.Font.Bold = true; […]

ASP MVC ClosedXML在Excel工作表中设置单选button

我正在使用ClosedXML NuGet包编辑现有的Excel文件。 我可以用文本编辑单元格,但也有一个单选button字段的性别。 我怎样才能设置这些单选button? 设置文本的示例: sheet.Cells(“F14”)。Value =“Text”

ClosedXML使用公式使用条件格式时 – 公式不正确

我正在使用ClosedXML的条件格式,我有两个问题。 首先,如果我将条件设置为基于如下值: > RangeToAdd.AddConditionalFormat().WhenLessThan(0).Fill.SetBackgroundColor(XLColor.Red).Font.SetFontColor(XLColor.Red); 但是,当我需要将其设置为相对单元格时,它不起作用。 这是我试过的: RangeToAdd.AddConditionalFormat().WhenLessThan("\"=RC[-19]\"").Fill.SetBackgroundColor(XLColor.Yellow); RangeToAdd.AddConditionalFormat().WhenGreaterThan("\"=RC[-19]+RC[-18]+RC[-17]\"").Fill.SetBackgroundColor(XLColor.BabyBlue); 它不工作。 这是添加=“=,然后是不正确的公式,我遵循在这里的文档中所说的,我也尝试了它,而不逃脱报价。 另一个问题很小,但我不明白。 如何设置一个条件停止的时候是真的。

C#创build数据透视表OpenXML

早上好, 我正在用closedxml创build一个数据透视表,到目前为止这么好所有的工作正常,没有人知道如何使用ClosedXML或OpenXML创build与数据透视表(透视图)相关联的图表。 这是甚至可能或只有正常的图表? 任何帮助,将不胜感激。

使用带有ClosedXML的大型数据表的OutOfMemory错误

添加大型数据表时遇到问题,请创build工作表。 我正在摆脱内存错误。 我build议closures事件跟踪,以提高性能和内存消耗,但我仍然遇到这些错误。 这是一些示例代码: public void SaveWorkBook(string xlFileName, DataSet dataSet) { using (var xlWorkBook = new XLWorkbook(XLEventTracking.Disabled)) { xlWorkBook.AddWorksheet(dataSet); xlWorkBook.SaveAs(xlFileName); } } public void SaveWorkBook(string xlFileName, params DataTable[] dataTables) { using (var xlWorkBook = new XLWorkbook(XLEventTracking.Disabled)) { foreach (var dataTable in dataTables) xlWorkBook.AddWorksheet(dataTable); xlWorkBook.SaveAs(xlFileName); } } 当然问题是数据表是巨大的。 像成千上万的logging或更多。 我试图使用一种替代方法来处理大数据表,比如使用一个具有较小logging数的临时数据表,然后将它们刷新到Worksheet,清除数据表,然后用新数据重新填充数据表。 填充,冲洗,清除,重复。 那或者InsertData方法() 问题是,每次我尝试使用可用选项写入数据表时,只有第一列正在写入。 然后降低文件,我看到其他列的数据,但在工作表的第一个单元格,而不是像他们所想的那样在一行中跨越列。 而且只有一排。 可能是写的最后一个logging。 […]

如何创build一个可编辑的Excel

我正在创build一个Excel文件: SpreadsheetDocument document = SpreadsheetDocument.Create(filename, SpreadsheetDocumentType.Workbook) WorkbookPart workBookPart = document.AddWorkbookPart(); workBookPart.Workbook = new Workbook(); WorksheetPart workSheetPart = workBookPart.AddNewPart<WorksheetPart>(); workSheetPart.Worksheet = new Worksheet(); Sheets sheets = workBookPart.Workbook.AppendChild(new Sheets()); Sheet sheet = new Sheet() { Id = workBookPart.GetIdOfPart(workSheetPart), SheetId = 1, Name = "Test Sheet" }; sheets.Append(sheet); workBookPart.Workbook.Save(); 当我打开文件时,它只是ReadOnly,我怎样才能使其可编辑的用户? ClosedXML是优先级,解决scheme的可选方式可以是OpenXML

用ClosedXML缩小为一个页面

我用ClosedXML创build一个Excel工作表,现在一切看起来不错,但是有时候内容会溢出一点点。 为了确保不会发生,无论如何,我都想将内容缩小到一个页面。 所以问题是:如何使用ClosedXML将所有内容收缩到一个页面中。