HTML-таблица в CSV, проблема с форматированием в CSV - PullRequest
0 голосов
/ 18 мая 2011

Я застрял с идеей о создании правильного CSV из таблицы HTML. Я использую HTMLAgilityPack , чтобы прочитать html из строки и создать HTMLDocument. Затем я использую XPATH для цикла между строками и столбцами.

Проблема в том, что я не могу определить правильную строку и ячейку (x, y) для конкретной ячейки.

Пример HTML:

<html>
<body>
    <table border="1">
        <tr>
            <td rowspan="2">
                100
            </td>
            <td>
                200
            </td>
            <td colspan="2">
                300
            </td>
        </tr>
        <tr>
            <td colspan="2">
                400
            </td>
            <td>
                600
            </td>
        </tr>
        <tr>
            <td>
                400
            </td>
            <td>
                500
            </td>
            <td>
                600
            </td>
        </tr>
    </table>
</body>
</html>

Изображение таблицы

Когда я открываю его в Excel и сохраняю как CSV, я получаю желаемый результат:

100,200,300,
,400,,600
400,500,600,

Может ли кто-нибудь помочь мне создать такой же вывод в .Net с учетом rowpan и colspan?

Спасибо! Dex

1 Ответ

2 голосов
/ 18 мая 2011

Вам не нужно знать, в какой строке и столбце вы находитесь. Все, что вам нужно сделать, это добавить "," для каждого нового столбца, который вы нашли, и разрывную линию каждый раз, когда вы достигаете конца строки.

Если вы перемещаетесь по документу, считая его документом xml, все, что вам нужно сделать, - это пройти по всем узлам TR, добавив линию разрыва, когда вы достигнете конца списка дочерних узлов. Итерируйте все TD-узлы на каждом TR-узле, добавляя «,» при необходимости.

...