如何格式化 HTML 文件以在 Excel 中获取定义的名称(从 Web 浏览器复制粘贴)?
Posted
技术标签:
【中文标题】如何格式化 HTML 文件以在 Excel 中获取定义的名称(从 Web 浏览器复制粘贴)?【英文标题】:How to format HTML files to get defined names in Excel (copy-paste from web browser)? 【发布时间】:2020-03-18 15:59:54 【问题描述】:在工作中,我负责开发一些基本的 Python 脚本,将结果导出到文本文件中。然后将文本文件导入我同事熟悉的 Excel 电子表格中。
我意识到这些 Python 脚本可以轻松地生成带有 <table>
元素的 .html 文件,而不是 .dat 文本文件。这些 html 文件可以使用 Internet 浏览器打开,然后使用复制/粘贴导出到新的 Excel 电子表格中。
不知何故,使用标签<a name=Defined_name></a>Value
会导致将提供“Value”的单元格引用为“Defined_name”。我看到了在导入 .html 网页时直接创建已定义名称的升级机会。
以下是 .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>
我正在寻找一种方法来为一系列单元格(行、列或数组)定义名称。我唯一可以参考的是单个单元格。
感谢您的帮助。
【问题讨论】:
为什么不用python只创建一个excel文件? 这样会更好,但我不知道如何格式化 excel 文件。当我在 NP++ 上打开它时,它完全搞砸了。我想我不能像在 Python 上写一个 .txt 文件那样写一个 .xlsx 文件 您能否发布创建文本文件的代码(仅相关部分)。 嗯,这只是基本的东西,使用类似 : with open(out_file, 'w') as f: f.write(line) 对不起,我的意思是数据行是如何创建的,它们是否在循环中? 【参考方案1】:使用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")
【讨论】:
以上是关于如何格式化 HTML 文件以在 Excel 中获取定义的名称(从 Web 浏览器复制粘贴)?的主要内容,如果未能解决你的问题,请参考以下文章
如何将包含数百张工作表的 excel 文件导入数据库以在 C# 项目中使用?