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

如何将PyPDF2提取的内容保存到Excel文件中?

解决方法

你存Excel的代码报错,核心问题是split('\n')返回的是普通Python列表,而to_excel是Pandas DataFrame/Series专属方法,列表没法直接调用这个方法。另外循环里每次调用to_excel会覆盖之前的内容,得先把所有数据收集好再统一保存。

具体实现步骤

1. 收集所有页面的文本行

先把第3至166页的所有文本行汇总到一个列表里(注意:PyPDF2的pages索引从0开始,如果你要取的是实际PDF页码的3到166页,应该把range(3,167)改成range(2,166),因为实际第3页对应索引2,第166页对应索引165,你原来的代码可能取的是索引3到166,对应实际第4到167页,这点要核对):

import PyPDF2
import pandas as pd

# 替换成你的PDF文件路径
reader = PyPDF2.PdfReader("your_file.pdf")

all_text_lines = []

# 遍历目标页面
for i in range(3, 167):  # 若要实际页码3-166,改成range(2,166)
    page_text = reader.pages[i].extract_text()
    if page_text:  # 跳过空页面,避免报错
        lines = page_text.split('\n')
        all_text_lines.extend(lines)

2. 转成DataFrame并保存到Excel

把汇总后的列表转换成Pandas DataFrame,再保存:

# 生成DataFrame,列名可按需修改
df = pd.DataFrame(all_text_lines, columns=["文本内容"])

# 保存到Excel,index=False去掉默认的行索引
df.to_excel('output.xlsx', index=False)

进阶优化(可选)

如果PyPDF2提取的文本格式混乱,试试用pdfplumber,它的文本提取精度更高:

import pdfplumber
import pandas as pd

all_text_lines = []

with pdfplumber.open("your_file.pdf") as pdf:
    # 实际页码3-166对应索引2到165,所以取pdf.pages[2:166]
    for page in pdf.pages[2:166]:
        page_text = page.extract_text()
        if page_text:
            lines = page_text.split('\n')
            all_text_lines.extend(lines)

# 保存到Excel
df = pd.DataFrame(all_text_lines, columns=["文本内容"])
df.to_excel('output.xlsx', index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 19:02:43