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

如何用Python实现提示用户从CSV复制指定行Quantity数据到XLS?

实现CSV指定行数据写入XLS文件的Python脚本

当然可以用Python实现这个需求,下面是完整的解决方案,用到pandas处理表格数据,openpyxl/xlrd作为XLS文件的读写引擎。

步骤1:安装依赖库

先执行以下命令安装所需的第三方库:

pip install pandas openpyxl xlrd==1.2.0

注:新版xlrd不再支持XLS格式,因此指定安装1.2.0版本;若处理的是XLSX格式,可省略xlrd的安装。

步骤2:完整脚本代码

import pandas as pd

def main():
    # 提示用户输入行范围并验证格式
    while True:
        range_input = input("请输入要复制的行范围(格式如1-5):")
        try:
            start_row, end_row = map(int, range_input.split('-'))
            if start_row < 1 or end_row < start_row:
                print("输入无效,请确保起始行≥1且结束行≥起始行")
                continue
            break
        except ValueError:
            print("输入格式错误,请用'起始行-结束行'的格式,比如1-5")

    # 读取源文件
    try:
        csv_df = pd.read_csv("File1.csv")
        # 读取XLS文件(XLSX格式请将engine改为'openpyxl')
        xls_df = pd.read_excel("File1.xls", engine='xlrd')
    except FileNotFoundError as e:
        print(f"错误:找不到文件 - {e.filename}")
        return
    except Exception as e:
        print(f"读取文件时出错:{str(e)}")
        return

    # 检查行范围是否超出数据总行数
    max_row = len(csv_df)
    if end_row > max_row:
        print(f"警告:输入的结束行超出CSV文件总行数(共{max_row}行),将只处理到第{max_row}行")
        end_row = max_row

    # 转换为pandas的0-based索引
    start_idx = start_row - 1
    end_idx = end_row - 1

    # 复制对应行的Quantity数据到XLS文件
    xls_df.loc[start_idx:end_idx, 'Quantity'] = csv_df.loc[start_idx:end_idx, 'Quantity'].values

    # 保存修改后的文件(XLSX格式请将engine改为'openpyxl')
    try:
        # 若要保留原文件,可修改文件名如"File1_updated.xls"
        xls_df.to_excel("File1.xls", index=False, engine='xlwt')
        print(f"已成功将第{start_row}-{end_row}行的Quantity数据写入XLS文件")
    except Exception as e:
        print(f"保存文件时出错:{str(e)}")

if __name__ == "__main__":
    main()

关键说明

  1. 行号转换:用户输入的是日常使用的1-based行号(比如1-5对应第一到第五行),脚本自动转换为pandas使用的0-based索引(即0到4),确保数据对应正确。
  2. 格式兼容:
    • 处理XLS文件用xlrd读、xlwt写;处理XLSX文件则替换为openpyxl引擎。
    • CSV文件直接通过pandas.read_csv读取,无需额外配置。
  3. 容错处理:包含输入格式验证、文件存在性检查、行范围越界提示,避免运行时异常。
  4. 文件保存:默认覆盖原XLS文件,如需保留原文件,修改to_excel的文件名参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:15:54