2015-09-07 2 views
3

Когда я вручную вставляю текст веб-сайта с таблицами в excel, таблицы сохраняют размещение и закрашивание ячейки. Попытка того же с пакетами excel, такими как xlsxwriter, позволяет мне вставлять весь текст в одну ячейку. Есть ли способ обойти это?вставка в excel с python

+0

Вы пробовали разделить стол на , теги? – SuperNova

ответ

4

Буфер обмена и склейка на самом деле более сложны, чем вы можете думать как пользователь, - и их поведение может быть очень специфичным для приложения, как для копирования, так и для вставки. Это хорошая вещь для пользователей, потому что это означает, что вы можете получать приятные преобразования, подобные тем, которые вы видите из таблицы html в Excel.

Когда что-то скопировано в буфер обмена, скопированное приложение может (если оно хочет) предоставить несколько разных форматов (например, сырой текст, текст в формате RTF и т. Д.). По-видимому, при копировании из Microsoft Word он все равно копирует в буфер обмена в 13 разных форматах - см. https://code.google.com/p/clipboardviewer/.

При вставке получающего приложения можно выбирать из доступных форматов и, конечно же, дополнительно обрабатывать любой формат, который он выбирает. Таким образом, между вашим браузером и excel, возможно, на конце Excel, что-то признает, что источник является таблицей и отлично обрабатывает html. Вы не используете copy/paste, поэтому я боюсь, что вам придется реализовать обработку html самостоятельно - поместите исходный текст в целевую ячейку (и ячейки ниже/справа) - это легкий бит, вы также будете иметь писать код для извлечения и применения форматирования текста, цвета ячейки, выравнивания текста и т. д. Я не знаю, возможно ли это, но если вы можете заставить его работать, возможно, будет полезно использовать python для автоматизации копирования/вставки gui операции, поэтому копирование/вставка работают так, как если бы вы нажимали клавиши вручную.

Смежные вопросы