如何使用c#在Excel文档中搜索合并的单元格?
我想以一致的方式操纵我合并的单元格,但我必须知道它们的地址才能这样做。
我有数百个,因为缺少一个更好的词,Excel中的表格,每个都有合并的单元格,我必须移动并放在每个表格的右侧。
为此,我需要知道如何搜索合并的单元格,并使用C#获取合并单元格的地址。我目前正在使用Interop。
另外,如果你认为有更简单的方法,在excel中有基本的excel功能,请告诉我。
感谢您的帮助。
答案 0 :(得分:0)
如果您使用支持Office Open XML的较新Office产品,则可以解析xml并找到代表合并单元格的标记
以下是具有2个单元的工作表的示例,其中一个单元从a1-b1和单个单元a2合并。
有一些商业化的,可能还有一些开源解决方案可以简化xml处理。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">
<dimension ref="A1:B2"/>
<sheetViews>
<sheetView tabSelected="1" workbookViewId="0">
<selection activeCell="A2" sqref="A2"/>
</sheetView>
</sheetViews>
<sheetFormatPr defaultRowHeight="15" x14ac:dyDescent="0.25"/>
<sheetData>
<row r="1" spans="1:2" x14ac:dyDescent="0.25">
<c r="A1" s="1" t="s">
<v>0</v>
</c>
<c r="B1" s="1"/>
</row>
<row r="2" spans="1:2" x14ac:dyDescent="0.25">
<c r="A2" t="s">
<v>1</v>
</c>
</row>
</sheetData>
<mergeCells count="1">
<mergeCell ref="A1:B1"/>
</mergeCells>
<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
</worksheet>