给进销存到处的文件新增2列
最近处理一个进销存软件导出的客户文件,是xlsx格式,删减部分内容后,大概如下客户名称 客户类型 当前剩余积分 当前累计积分 客户会员等级
余小姐 新客户(进销存) 1096 1096 默认会员
罗小姐 新客户(进销存) 886 886 默认会员
小仙女 新客户(进销存) 1601 1601 默认会员
伍小姐 新客户(进销存) 349 399 默认会员
杨小姐 新客户(进销存) 795 795 默认会员
陈小姐 新客户(进销存) 557 557 默认会员
叶小姐 新客户(进销存) 1700 1759 默认会员
李小姐 新客户(进销存) 3897 3897 默认会员
曾小姐 新客户(进销存) 1222 1222 默认会员
孙小姐 新客户(进销存) 798 798 默认会员
唐小姐 新客户(进销存) 299 299 默认会员
邓 新客户(进销存) 465 465 默认会员
高小姐 新客户(进销存) 2702 2702 默认会员
兰小姐 新客户(进销存) 375 375 默认会员
想在后面增加2列,第一列的列名为增加后的积分,值为当前剩余积分的值+100,
第二列的i行的值的内容为“vip客户名称i行的值,过节好,新增100积分,现在的值为增加后的积分的i行的值(前面新增的列),一些客套话"
刚刚尝试用for in,出现TypeError: 'int' object is not iterable,麻烦大神帮忙处理下。
可以使用openpyxl库来直接操作Excel文件。请先安装openpyxl库,然后按照以下步骤操作:
import openpyxl
# 打开Excel文件
file_path = 'your_file_path.xlsx'
workbook = openpyxl.load_workbook(file_path)
sheet = workbook.active
# 获取最大行数
max_row = sheet.max_row
# 添加列名
sheet.cell(row=1, column=6).value = "增加后的积分"
sheet.cell(row=1, column=7).value = "客套话"
# 遍历表格内容,添加新列数据
for row in range(2, max_row + 1):
current_points = sheet.cell(row=row, column=3).value
customer_name = sheet.cell(row=row, column=1).value
# 计算新积分
new_points = current_points + 100
# 生成客套话字符串
greetings = f"vip {customer_name},过节好,新增100积分,现在的值为{new_points},一些客套话"
# 将新数据写入新列
sheet.cell(row=row, column=6).value = new_points
sheet.cell(row=row, column=7).value = greetings
# 保存更新后的Excel文件
workbook.save('updated_file.xlsx')
这段代码首先打开了Excel文件并获取了活动工作表。接着,它遍历表格的内容,并为每一行添加新的列数据。最后,将更新后的工作簿保存为一个新的Excel文件。
请确保将'your_file_path.xlsx'替换为您要处理的文件的实际路径。 谢谢大神 其实还有个方法,用pandas也行
首先用read_excel读取为df1
然后从df1里根据['客户名称','当前剩余积分']取出后对积分+100即可,然后这个记为df2
接着继续从df1找出vip,然后获取数值并插入新列作为df3
最后用merge连接在一起即可
页:
[1]