Как искать объединенные ячейки в файле Excel - PullRequest
0 голосов
/ 23 ноября 2011

Как искать объединенные ячейки в документе Excel с помощью c #?

Я хочу последовательно управлять своими объединенными ячейками, но для этого мне нужно знать их адрес.

У меня есть сотни таблиц в Excel из-за отсутствия лучшего слова, и в каждой из них есть ячейки, которые я должен переместить и поместить справа от каждой таблицы.

Для этого мне нужно знать, как искать объединенные ячейки и получать адреса объединенных ячеек с помощью C #.Я в настоящее время использую Interop.

Также, если вы думаете, что есть более простые способы, с базовыми возможностями Excel в Excel, пожалуйста, дайте мне знать.

спасибо за любую помощь.

1 Ответ

0 голосов
/ 23 ноября 2011

Если бы вы использовали более новые продукты Office, поддерживающие Office Open XML, вы, вероятно, могли бы проанализировать xml и найти теги, представляющие объединенные ячейки

Ниже приведен пример листа с двумя ячейками, одна из которых объединена из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>
...