You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas读取Excel后打印内容无法换行,如何解决?

解决Pandas读取Excel后输出内容无法换行的问题

问题核心

你遇到的问题主要出在两个地方:

  1. 直接拼接Pandas Series生成的带\n的内容,在HTML环境中不会自动解析为换行,且最初的代码存在语法错误;
  2. 循环生成列表后直接打印列表对象,输出的是列表结构而非格式化后的文本。

修正后的解决方案

方案1:用Pandas apply 高效生成格式化文本

这种方法比iterrows更高效,适合处理大数据量:

import pandas as pd

file = r"..\test.xlsx"

try:
    df = pd.read_excel(file)
    # 逐行生成格式化字符串
    formatted_lines = df.apply(lambda row: f"{row['Date']} | {row['Time']} | {row['Description']}", axis=1)
    # 用换行符连接所有行
    result = '\n'.join(formatted_lines)
    print(result)
    
    # 如果要输出到HTML,二选一:
    # 1. 用<pre>标签保留原始格式
    html_output = f'<pre>{result}</pre>'
    # 2. 把换行符替换为HTML换行标签<br>
    # html_output = result.replace('\n', '<br>')
except OSError:
    print("Impossible to read", file)

方案2:修复循环遍历的代码

如果偏好循环方式,需要修正列表拼接后的打印逻辑:

import pandas as pd

file = r"..\test.xlsx"

try:
    df = pd.read_excel(file)
    test = []
    for index, row in df.iterrows():
        # 补上之前遗漏的Time列
        x = f"{row['Date']} | {row['Time']} | {row['Description']}\n"
        test.append(x)
    # 拼接列表中的字符串后再打印,而非直接打印列表
    print(''.join(test))
    
    # 输出到HTML的处理同方案1
except OSError:
    print("Impossible to read", file)

关键说明

  • 语法修正:最初的代码中test = 后的续行缩进错误,正确续行需保持缩进一致(用反斜杠时,下一行要对齐);
  • HTML换行问题:普通文本的\n在HTML中不会被渲染为换行,必须用<pre>标签包裹内容(保留原始格式),或者将\n替换为<br>标签;
  • 列表打印问题:直接print(test)会输出列表的结构(带方括号、引号),必须用''.join(test)把列表中的字符串合并成完整文本再打印。

内容的提问来源于stack exchange,提问作者Stacky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 22:07:49