- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想知道是否有人想出解决此问题的方法。我注意到 AutoFitColumns() 方法在包含合并单元格的列上失败。我在下面包含了一个基本代码示例:
var cellRange = worksheet.Cells[1, column, 2, column];
cells.Merge = true;
cells.Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Center;
cells.Value = "Some Text Goes Here";
worksheet.Cells.AutoFitColumns();
生成的工作表将针对列变量中的列(正确地)合并第 1 行和第 2 行中的单元格,但 AutoFitColumns() 方法会忽略该特定单元格。
如有任何帮助,我们将不胜感激。
最佳答案
AutoFitColumns
是 documented忽略合并的单元格。它不是失败,至少在有缺陷的意义上是这样。
显然是通过 Excel 2007,you cannot use the AutoFit feature for rows or columns that contain merged cells完全没有。
我只用 Excel 2013 测试过,它的行为似乎有所不同:
自动调整行会忽略该行中的所有行合并单元格。
自动调整列会忽略该列中的所有列合并单元格。
换句话说,您可以在具有合并单元格的行和列中使用自动调整,它只会忽略沿您自动调整的同一维度合并的任何单元格。
最后,我不确定我是否了解自动调整合并单元格的意义。例如,假设您在 A1:B1 处有一个合并单元格,其内容填充了默认的两列宽度。
如果您在 A 列上自动调整,应该会发生什么? A 列是否应该变得足够宽以适应所有 A1:B1,有点像将合并的单元格视为其内容仅存在于左上角的原始单元格 A1 中?这可能是合理的,因为我不能立即看出在某些情况下是否暗示奇怪的行为。
如果需要类似的东西,我会插入内容,自动调整,然后才合并。
但是如果你想自动适应 B 列,在这种情况下怎么办:
在这里,您可能希望 B 列足够宽,以便显示 A1:B1 中的所有内容。 (内容只是文本“well hello world”。)
恐怕没有单线的。不过,这是一种方法:
将内容插入尚未合并的左上单元格。
保存此单元格列的当前宽度。
自动调整列。
保存新的列宽。
将列宽重置为您在第 2 步中保存的值。
合并您要合并的单元格。
总计除最后一列之外的所有合并列的宽度。
从您在第 4 步中保存的宽度中减去这个总数。
将最后合并的列的宽度设置为步骤 8 的结果。
更一般地说,您可以按照您认为合适的任何方式在合并的列中拆分来自第 4 步的总自动调整宽度。
要做到这一切,您需要使用 ExcelColumn.AutoFit
和 ExcelColumn.Width
(以及 ExcelWorksheet.Column
来获取ExcelColumn
对象)。
如果您的内容是静态的(或者至少是动态的但长度不太可变),您可以简单地为相关列设置合理的固定宽度,按您喜欢的方式分布。
关于c# - EPPlus - AutoFitColumns() 方法在列具有合并单元格时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18894671/
是否可以在 EPPlus 中为整个列设置样式?我希望我可以只使用 Column方法,但是当我这样做时,我得到了奇怪的结果: //Sets all cells in all columns to Red
有人知道如何使用 EPPLUS 设置条件格式的字体颜色吗? Using rng = ws.Cells("A7:AD29") Dim condSumLn = ws.ConditionalForm
我正在查看 POST 以使用 EPPlus 在 Excel 中创建多级可折叠分组,但我无法在现有组中创建内部组。 请参阅我在这里使用的示例文件 看来,我需要为第 14-18 行设置 OutlineLe
示例。埃普拉斯怎么样? Sheet.Cells["a1:d1"].Column.Width = 10; 在 Excel 互操作中: Sheet.get_Range("a1", "d1").Column
我在使用 EPPlus 处理 Excel 文档中的注释时遇到了一些问题。我可以添加评论并删除它们,但有时它不成功。 我正在使用注释来显示 Excel 文件处理结果的验证消息,并且当该文件被重新处理时,
我正在将 SSRS 报告导出到单独的 excel 文件中,并使用 EPPlus 将它们合并到一个文件中。合并成功,但当我尝试在 Excel 中打开文件时出现以下错误。 我删除了报告数据以生成空报告,但
我正在使用EPPlus读取excel工作表并将数据加载到数据表中以执行进一步的操作,然后将修改后的数据保存回excel文件中。 下面的代码检查单元格值是否为浮点值,然后将浮点值转换为日期时间。 当单元
通过查看EPPlus随附的示例,我已经成功创建了数据透视表,但是我无法为其设置正确的报告布局。我希望它是“表格格式”,而不是“大纲”或其他格式。在我看来,EPPlus现在不支持此功能,但是也许我缺少了
我使用 EPPlus 阅读工作表。在此工作表中,我需要的数据在列 B-D 中.在栏目A有静态值,我会忽略。 col A 中的值填写到Row 1000 .但是,我需要的数据只会在那里,例如 Row 45
在 EPPlus 中,我可以使用 workSheet.Cells[x, y].AddComment() 将注释添加到工作表中的单元格 但是如何从给定单元格中删除注释 - 没有 workSheet.Ce
设置列的 WrapText=true 后,我想查看行的新高度(即文本是否换行,行数)。行的 Height 属性似乎未更新。 ExcelPackage pkg = new ExcelPa
我目前正在与一位在 Excel 中手动生成发票的客户合作。我已经使用 epplus 自动为他们生成这个文件。 我的要求之一是每个页面周围都应该有一个边框,并以大约 7 行长的标题开始(并且每行具有不同
更改单元格的值时遇到问题。这是我的代码: FileInfo newFile = new FileInfo(file); ExcelPackage pck = new ExcelPackage(newF
当我使用 EPPlus 自动调整格式化为日期字符串的列时,自动调整机制使用未格式化的字符串作为列宽度的度量。 这是一个错误还是我做错了什么? 代码 sheet.Column(2).Style.Numb
using (var pck = new ExcelPackage(new FileInfo(wb_path))) { ExcelWorksheet ws = pck.Workbook.Wor
我有以下代码行,它根据特定列对工作表中的数据进行升序排序。问题是,它考虑了第一行(单元格 A1、B1 等)。 worksheet.Cells["A:AA"].Sort(new int[] { 5, 1
我正在.NET 4.0 命令行应用程序上使用 EPPlus 库创建电子表格。 我成功地从数据库中加载了所有数据,最后我正在创建一个图形,这是我的代码: var chart = sheet.Drawin
如何使用 EPPLus 将图表创建为单独的工作表,而不是作为现有工作表中的绘图? 最佳答案 在 4.0.4.0 版本(从 codeplex 下载代码,以纠正保存文件中的错误),您可以使用: workb
我正在运行一个带有 EPPlus 库的 C# 项目,我需要它检查各个列/行中的数据的单元格,然后找到“关键字”,可以说并将其与其他各个列/行中的数据匹配。 我需要知道一种将一个单元格中的数据与另一个单
我在使用 C# 和 EPPlus 从工作簿中读取某些工作表时遇到问题。 错误信息 name contains invalid characters 即使多次检查工作簿中的工作表名称、文件名和列标题以确
我是一名优秀的程序员,十分优秀!