BeautifulSoup 或 Pandas 向具有多行值的单元格添加换行符或段落标记
BeautifulSoup or Pandas add line break or paragrah tag to cell with multiline value
我正在使用(被低估的)xlsx2html 将 Excel 文件转换为 HTML 文件,然后我可以使用 Beautiful Soup 为其他进程操作这些文件。我 运行 遇到的一个问题是 xlsx2html 不会向具有多行的单元格添加换行符,如下图所示。
这会产生如下所示的输出,其中所有行都在一行上:
我需要一个输出,其中每一行都在自己的行上:
我知道我需要在多行单元格中添加换行符,但我不知道如何以编程方式执行此操作。我的思考过程是搜索每个标签并计算它包含的代码行数。如果超过 1 行代码,请添加一个换行符(或者最好是一个段落标记)。但是,我不知道如何计算行数。
我希望我有代码来分享我尝试做的事情,但我完全是一片空白。有任何想法吗?谢谢!
这对我有用,只需将 <br>
添加到字符串中不以 >\n
结尾但仍以 \n
结尾的位置。我很讨厌正则表达式,所以我只是以一种 hacky 的方式使用 replace
。
输入:
代码:
from xlsx2html import xlsx2html
import random
in_file = xlsx2html("/path/to/your/Untitled spreadsheet.xlsx")
with open("/path/to/output_html.html", "w") as f:
in_file.seek(0)
v = in_file.read()
# I suck at regex, but you can do re.sub("pattern", "<br>", v)
# Where "pattern" selects lines that don't end with ">\n"
hsh = str(random.getrandbits(128))
v = v.replace(">\n", hsh)
v = v.replace("\n", "<br>")
v = v.replace(hsh, ">\n")
print(v)
f.write(v)
输出:
我正在使用(被低估的)xlsx2html 将 Excel 文件转换为 HTML 文件,然后我可以使用 Beautiful Soup 为其他进程操作这些文件。我 运行 遇到的一个问题是 xlsx2html 不会向具有多行的单元格添加换行符,如下图所示。
这会产生如下所示的输出,其中所有行都在一行上:
我需要一个输出,其中每一行都在自己的行上:
我知道我需要在多行单元格中添加换行符,但我不知道如何以编程方式执行此操作。我的思考过程是搜索每个标签并计算它包含的代码行数。如果超过 1 行代码,请添加一个换行符(或者最好是一个段落标记)。但是,我不知道如何计算行数。
我希望我有代码来分享我尝试做的事情,但我完全是一片空白。有任何想法吗?谢谢!
这对我有用,只需将 <br>
添加到字符串中不以 >\n
结尾但仍以 \n
结尾的位置。我很讨厌正则表达式,所以我只是以一种 hacky 的方式使用 replace
。
输入:
代码:
from xlsx2html import xlsx2html
import random
in_file = xlsx2html("/path/to/your/Untitled spreadsheet.xlsx")
with open("/path/to/output_html.html", "w") as f:
in_file.seek(0)
v = in_file.read()
# I suck at regex, but you can do re.sub("pattern", "<br>", v)
# Where "pattern" selects lines that don't end with ">\n"
hsh = str(random.getrandbits(128))
v = v.replace(">\n", hsh)
v = v.replace("\n", "<br>")
v = v.replace(hsh, ">\n")
print(v)
f.write(v)
输出: