Как отформатировать HTML файлы, чтобы получить определенные имена в Excel (копировать-вставить из веб-браузера)? - PullRequest
1 голос
/ 18 марта 2020

На работе я отвечаю за разработку некоторых базовых c Python скриптов, которые экспортируют результаты в текстовые файлы. Затем текстовые файлы импортируются в электронную таблицу Excel, с которой мои коллеги знакомы.

Я понял, что эти сценарии Python могут легко создавать. html файлы с элементами <table> вместо текстовых файлов .dat. Эти html файлы можно открыть с помощью браузера Inte rnet и затем экспортировать в новую электронную таблицу Excel с помощью копирования / вставки.

Каким-то образом использование тега <a name=Defined_name></a>Value приводит к тому, что ячейка снабжается " Значение "упоминается как" Defined_name ". Я вижу прекрасную возможность для обновления, имея определенные имена, созданные непосредственно при импорте веб-страницы. html.

Ниже приведен базовый c пример файла. html, который приводит к генерации определенных имен в Excel (2007 и более):

<table>
   <tbody> <!-- Corps du tableau -->
       <tr>
           <td><A name=Nom_1></A>Carmen</td>
           <td><A name=Age_1></A>33 ans</td>
           <td><A name=Pays_1></A>Espagne</td>
       </tr>
       <tr>
           <td><A name=Nom_2></A>Michelle</a></td>
           <td><A name=Age_2></A>26 ans</td>
           <td><A name=Pays_2></A>États-Unis</td>
       </tr>
       <tr>
           <td><A name=Nom_3></A>François</td>
           <td><A name=Age_3></A>43 ans</td>
           <td><A name=Pays_3></A>France</td></A>
       </tr>
       <tr>
           <td><A name=Nom_4></A>Martine</td>
           <td><A name=Age_4></A>34 ans</td>
           <td><A name=Pays_4></A>France</td>
       </tr>
       <tr>
           <td><A name=Nom_5></A>Jonathan</td>
           <td><A name=Age_5></A>13 ans</td>
           <td><A name=Pays_5></A>Australie</td>
       </tr>
       <tr>
           <td><A name=Nom_6></A>Xu</td>
           <td><A name=Age_6></A>19 ans</td>
           <td><A name=Pays_6></A>Chine</td>
       </tr>
   </tbody>
</table>

Я ищу способ определить имена для диапазона ячеек (строки, столбца или массива). Единственное, на что я могу ссылаться - это отдельные клетки.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 20 марта 2020

С помощью openpyxl вы можете создать рабочую книгу, используя python

import openpyxl

# create a workbook
wb = openpyxl.Workbook()
ws = wb.worksheets[0]

# define a named range
dn = openpyxl.workbook.defined_name
rng = dn.DefinedName('data', attr_text='Sheet!$A$1:$J$10')
wb.defined_names.append(rng)

# add some data
for r in range(1,11):
  for c in range (1,11):
     ws.cell(r,c).value = r + (c-1)*10

wb.save("myworkbook.xlsx")
print("workbook created")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...