【发布时间】:2018-02-10 23:28:39
【问题描述】:
我想检查使用 c# 的 excel 工作表是否已合并单元格我搜索并找到了许多谈论如何合并或取消合并单元格的方法,或者检查工作表的固定范围内是否有单元格,例如 [a1:100] 我实际上是什么想要的是
检查所有工作表中是否有任何合并的单元格和所有 Excel 文件中的所有单元格,或者至少是我正在工作的工作表
感谢高级帮助
【问题讨论】:
我想检查使用 c# 的 excel 工作表是否已合并单元格我搜索并找到了许多谈论如何合并或取消合并单元格的方法,或者检查工作表的固定范围内是否有单元格,例如 [a1:100] 我实际上是什么想要的是
检查所有工作表中是否有任何合并的单元格和所有 Excel 文件中的所有单元格,或者至少是我正在工作的工作表
感谢高级帮助
【问题讨论】:
您可能有兴趣使用以下方法
Function CountMerged(pWorkRng As Range) As Long
'Updateby20140307
Dim rng As Range
Dim total As Long
Set dt = CreateObject("Scripting.Dictionary")
For Each rng In pWorkRng
If rng.MergeCells Then
TempAddress = rng.MergeArea.Address
dt(TempAddress) = ""
End If
Next
CountMerged = dt.Count
End Function
来源:https://www.extendoffice.com/documents/excel/1501-excel-count-merged-cells.html
希望对你有帮助
【讨论】:
以下方法会有所帮助,并且在 c# 中:
using Spire.Xls;
namespace Detect_Merged_Cells
{
class Program
{
static void Main(string[] args)
{
Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.xlsx");
Worksheet sheet = workbook.Worksheets[0];
CellRange[] range = sheet.MergedCells;
foreach (CellRange cell in range)
{
cell.UnMerge();
}
workbook.SaveToFile("Output.xlsx",ExcelVersion.Version2010);
}
}
}
上述解决方案基于第 3 方库 - Spire.XLS(您可以从 nuget 获取它,并注意我为 Spire 工作)。有关更多信息,请查看此链接: https://www.e-iceblue.com/Tutorials/Spire.XLS/Spire.XLS-Program-Guide/Cells/How-to-detect-merged-cells-in-a-worksheet.html
【讨论】: