如何在excel文件中搜索合并的单元格

时间:2011-11-23 03:01:19

标签: c# excel search office-interop

如何使用c#在Excel文档中搜索合并的单元格?

我想以一致的方式操纵我合并的单元格,但我必须知道它们的地址才能这样做。

我有数百个,因为缺少一个更好的词,Excel中的表格,每个都有合并的单元格,我必须移动并放在每个表格的右侧。

为此,我需要知道如何搜索合并的单元格,并使用C#获取合并单元格的地址。我目前正在使用Interop。

另外,如果你认为有更简单的方法,在excel中有基本的excel功能,请告诉我。

感谢您的帮助。

1 个答案:

答案 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>