持续热爱 2024-02-19 15:24 采纳率: 0%
浏览 87
已结题

Python怎样读取excel中的表单

img


怎么通过Python读取excel中的表单数据,表单不止一张,并重新保存为下列形式?需要完整代码

img

  • 写回答

28条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-02-19 15:24
    关注
    获得1.20元问题酬金

    引自免费微信小程序:皆我百晓生

    由于您提供的Excel表单内容是在文本中而非实际文件,我将基于假设它们存储在名为"sales_order1.xlsx"和"sales_order2.xlsx"的两个Excel文件中,并且数据分别位于第一个工作表上。这里使用pandas库来读取Excel文件并处理数据。

    首先,请确保已安装pandas和openpyxl库(用于处理较新格式的Excel文件):

    pip install pandas openpyxl
    

    然后,您可以使用以下Python代码来读取这两个Excel文件并重新整理数据:

    import pandas as pd
    
    # 读取图1中的Excel表单数据
    df1 = pd.read_excel('sales_order1.xlsx', header=None, skiprows=[0, 1, 2, 3, 4], usecols='A:O')
    df1.columns = ['行号', '商品编号', '商品全名', '规格', '单位', '数量', '单价', '金额', '折扣', '折后金额']
    df1.dropna(inplace=True)  # 删除空行
    
    # 读取图2中的Excel表单数据,假设制单日期、库房、单据编号在同一列合并为一行
    df2 = pd.read_excel('sales_order2.xlsx', skiprows=1)
    df2['商品全名'] = df2['商品全名'].str.replace('赠品标记', '')  # 去除赠品标记列内容
    df2.rename(columns={'往来单位': '客户名称', '商品编号': '商品编号'}, inplace=True)
    df2[['制单日期', '库房', '单据编号']] = df2['制单日期 制单日期.1 库房 单据编号 商品编号'.split()].apply(lambda x: x.str.cat(sep=' '), axis=1)
    df2.drop(['制单日期 制单日期.1 库房 单据编号 商品编号'], axis=1, inplace=True)
    
    # 合并两个表单的数据(如果需要)
    # 这里假设可以根据'单据编号'进行合并,实际情况请根据具体数据调整
    merged_df = pd.concat([df1, df2[df2.columns.intersection(df1.columns)]], ignore_index=True)
    
    # 保存整理后的数据到新的Excel文件
    merged_df.to_excel('reorganized_sales_orders.xlsx', index=False)
    

    请注意,上述代码是根据您提供的信息模拟编写的,实际应用时可能需要针对您的Excel文件结构进行适当调整。例如,对于图2中的数据,可能需要进一步处理以适应合并的需求,因为“制单日期”、“库房”和“单据编号”在一个单元格内合并显示了,这在读取时需要特殊处理。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 2月27日
  • 修改了问题 2月19日
  • 修改了问题 2月19日
  • 创建了问题 2月19日