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

Python实现PDF逐行写入Excel遇TypeError错误求助

解决PDF内容逐行写入Excel的TypeError问题

你代码里的TypeError是因为for循环的写法逻辑错误:for u in lin:会把列表lin里的每个字符串元素赋值给u,这时你用lin[u]去取列表元素,相当于用字符串当索引,而列表索引只能是整数或切片,自然触发报错。

修复后的代码

import pdfplumber
import openpyxl

# 替换为你的PDF文件实际路径
pdf = pdfplumber.open("your_pdf_file.pdf")
page = pdf.pages[0]
text = page.extract_text()
lin = text.split("\n")

# 替换为你的Excel文件实际路径
wb = openpyxl.load_workbook("your_excel_file.xlsx")
ws = wb.active
ws.title = "S1"

# 遍历每行内容,用enumerate直接获取从1开始的Excel行号
for row_num, line_content in enumerate(lin, start=1):
    ws.cell(row=row_num, column=1).value = line_content

wb.save("your_excel_file.xlsx")
pdf.close()  # 此处必须加括号,否则未实际执行关闭操作
print("Ok!")

关键修改说明

  • 用enumerate(lin, start=1)同时获取行号(从1开始对应Excel的A1、A2...)和每行文本,无需手动维护u、i两个变量,避免索引混乱。
  • 直接将遍历到的文本内容赋值给单元格,取消了错误的lin[u]索引取值操作。
  • 修复pdf.close为pdf.close(),补全方法调用的括号,确保PDF文件被正确关闭。

内容的提问来源于stack exchange,提问作者J.bruno

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 05:25:25