用Python帮我实现如下功能 1、当前目录下有个Excel,Excel名称为shippment.xls 2、shippment.xls中有四个字段发货日期、发货单号、快递单号、物流轨迹 3、把shippment.xls中的每个单元格去掉空格 4、如果某一行的快递单号中有”/”,以”/”拆分成多行数据,并去掉”/”,拆分的多行数据中,别的列的值就跟原本这一行的数据一样 5、把经过处理后的shippment.xls全部复制生成一张新的Excel,名称为logistics_trajectory.xls,并保持在当前目录下
时间: 2024-03-26 15:36:11 浏览: 58
好的,我可以帮您实现这个功能。您需要安装xlrd、xlwt和xlutils这三个库,可通过pip install命令进行安装。
以下是代码实现:
```python
import xlrd
import xlwt
from xlutils.copy import copy
# 打开原始Excel文件
workbook = xlrd.open_workbook('shippment.xls')
# 获取第一个sheet页
sheet = workbook.sheet_by_index(0)
# 处理单元格空格
for i in range(sheet.nrows):
for j in range(sheet.ncols):
cell_value = sheet.cell_value(i, j)
if isinstance(cell_value, str):
sheet.cell(i, j).value = cell_value.strip()
# 拆分快递单号
new_rows = []
for i in range(sheet.nrows):
row = sheet.row_values(i)
express_num = row[2]
if '/' in express_num:
express_nums = express_num.split('/')
for num in express_nums:
new_row = row.copy()
new_row[2] = num.strip()
new_rows.append(new_row)
else:
new_rows.append(row)
# 创建新Excel文件
new_workbook = xlwt.Workbook(encoding='utf-8')
new_sheet = new_workbook.add_sheet('Sheet1')
# 写入新Excel文件
for i, row in enumerate(new_rows):
for j, value in enumerate(row):
new_sheet.write(i, j, value)
# 保存新Excel文件
new_workbook.save('logistics_trajectory.xls')
```
请将以上代码保存为.py文件并放在shippment.xls所在的文件夹内,运行即可生成新的Excel文件logistics_trajectory.xls。
阅读全文