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

关注引自免费微信小程序:皆我百晓生
由于您提供的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中的数据,可能需要进一步处理以适应合并的需求,因为“制单日期”、“库房”和“单据编号”在一个单元格内合并显示了,这在读取时需要特殊处理。