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

如何基于指定Excel单元格区域生成并导出目标格式CSV文件

解决方案:提取Excel指定单元格并导出CSV

用Pandas实现(适配iat方法)

直接通过iat按位置索引提取目标单元格,整理成结构后导出CSV,代码简洁高效:

import pandas as pd

# 读取工作表,header=None表示不把首行当表头
df = pd.read_excel("Calculation - (Vodafone) July 22.xlsx", sheet_name="PPD Summary", header=None)

# 提取目标单元格:iat[row_index, col_index],索引从0开始(B是第1列,5行对应索引4)
b5 = df.iat[4, 1]
b6 = df.iat[5, 1]
f5 = df.iat[4, 5]
f6 = df.iat[5, 5]
g5 = df.iat[4, 6]
g6 = df.iat[5, 6]

# 搭配固定值整理成目标格式
output_data = [
    [9999305, b5, f5, g5],
    [9999305, b6, f6, g6]
]

# 转成DataFrame并导出CSV,index=False去掉行索引
pd.DataFrame(output_data, columns=["固定值", "B列数据", "F列数据", "G列数据"]).to_csv("output.csv", index=False, encoding="utf-8-sig")

用OpenPyXL实现(解决区域数据整理问题)

如果必须用OpenPyXL,直接定位单个单元格取值,再手动整理成CSV需要的行结构:

from openpyxl import load_workbook
import csv

# 加载工作簿,data_only=True确保读取公式计算后的值而非公式本身
wb = load_workbook("Calculation - (Vodafone) July 22.xlsx", data_only=True)
ws = wb["PPD Summary"]

# 直接通过单元格坐标取值(OpenPyXL索引从1开始,和Excel一致)
b5 = ws["B5"].value
b6 = ws["B6"].value
f5 = ws["F5"].value
f6 = ws["F6"].value
g5 = ws["G5"].value
g6 = ws["G6"].value

# 整理成CSV需要的行格式
output_rows = [
    ["固定值", "B列数据", "F列数据", "G列数据"],  # 表头
    [9999305, b5, f5, g5],
    [9999305, b6, f6, g6]
]

# 写入CSV文件,newline=""避免空行,utf-8-sig兼容Excel中文显示
with open("output_openpyxl.csv", "w", newline="", encoding="utf-8-sig") as f:
    csv.writer(f).writerows(output_rows)

注意事项

  • OpenPyXL读取带公式的单元格时,必须加data_only=True,否则会返回公式字符串而非计算结果。
  • 导出CSV用utf-8-sig编码,能避免Excel打开时出现中文乱码。
  • 可根据实际需求调整表头名称或数据列的顺序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:45:54