Импорт таблицы HTML в Excel через буфер обмена - PullRequest
4 голосов
/ 24 июля 2009

Я хочу скопировать табличные данные в Excel из моего приложения. Самым простым способом, который я нашел, было использование HTML в качестве промежуточного формата. Прочитав этот вопрос , я смог сохранить форматирование моих данных. Есть ли способ сохранить ширину столбцов тоже? Я пытался установить стиль различными способами:

<td style="width:100;">...</td>
<td style="width:100px;">...</td>
<td style="width:100pt;">...</td>

, но безрезультатно. Есть идеи?

Для бонусных баллов есть ли место, где я могу найти описание HTML-формата Excel?

[РЕДАКТИРОВАТЬ] Обновление: я написал небольшой инструмент для дампатип передачи "Таблица стилей XML". Это самостоятельный XML-документ. Он также содержит ширину столбцов. Но быстрый тест показывает, что Excel полностью игнорирует ширину столбцов, даже когда я обрезаю и вставляю между двумя таблицами :( Поэтому, если кто-то не скажет мне вариант изменить это поведение, я думаю, что просто невозможно отформатировать столбцы при вставке.

[EDIT2] Я нашел способ. После вставки вы получаете маленький значок в правом нижнем углу, который выглядит как кнопка вставки на панели инструментов. Здесь вы можете выбрать некоторые параметры. Один из них «Сохранить ширину»исходной таблицы ".

Ответы [ 4 ]

4 голосов
/ 24 июля 2009

Я рекомендую формат XML Spreadsheet (старый 2002/2003 - более простой для генерации), чем возможность Excel импортировать HTML.

Я сделал обе и написанные библиотеки для экспорта как напрямую из .NETи формат XML определенно с меньшей вероятностью заставит вас уснуть.

3 голосов
/ 28 июля 2011

не используйте ни "стиль", ни "px", например:

<table border="1" cellpadding="5" cellspacing="0">
<tr>
    <td width="100">test</td>
    <td width="100">test</td>
    <td width="100">test</td>
    <td width="500">test</td>
</tr>
</table>
2 голосов
/ 24 июля 2009

Вы можете "совершить поездку" из Excel в HTML и обратно, так почему бы не создать простую рабочую книгу в Excel и сохранить ее как HTML, а затем проверить результаты?


РЕДАКТИРОВАТЬ : убрана ерунда о перехвате события «вставка»;Я только что понял, что вы на стороне копирования, а не на вставке.

1 голос
/ 10 сентября 2016

Похоже на ошибку, использование буфера обмена не устанавливает ширину столбцов.

Решение (или обходной путь) - открыть HTML-файл в Excel.

Вот копия:

Скопируйте это и вставьте в Excel:

<html><body><center>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td width=64><strike>testing</strike></td>
<td width=64>one</td>
<td width=233>two</td>
<td width=64>three</td>
</tr>
</table></center></body></html>

Не устанавливает ширину столбца!

Сохраните приведенный выше HTML-файл в файле и откройте его в Excel. Ширина столбцов установлена ​​правильно.

...