Python小程序:用split拆分excel表格里的数据

环境准备
  1. 安装Python3,安装教程此处略。
  2. 安装xlrd和xlwt库:
    (1) 同时按下Windows图标键+“R”(打开运行窗口);
    (2) 输入“cmd”;
    (3) 输入“pip install xlrd”,“pip install xlwt”
实现功能

实现功能如图所示:

  1. 以“/”为分隔符,拆分第一列中各单元格的数据,加到新建行的第一列;
  2. 拷贝其他列的数据到新建行。
代码
  1. 新建txt文件,复制以下代码并保存(注意空格对齐问题,Python对空格缩进敏感);
  2. 修改文件后缀名为test.py(文件名可按需修改);
  3. 将待处理的excel表放在test.py文件同级目录下;
  4. 在py文件目录下,按住“Shift”键的同时,单击鼠标右键,选择“在此处打开命令行窗口”;
  5. 输入“python .\test.py”,按“Enter”键即可运行。
import xlrd
import xlwt	

data_r=xlrd.open_workbook('数据拆分.xlsx')
table_r = data_r.sheets()[0] #表示excel的第0个sheet(从左往右数),原始数据
data_w=xlwt.Workbook(encoding = 'utf-8')
table_w=data_w.add_sheet('target') #目标数据

nrows=table_r.nrows #获得表的行数
ncols=table_r.ncols #获得表的列数
print(nrows) #打印信息,可省略
print(ncols) #打印信息,可省略

row_w = 0	
for i in range(nrows): #遍历原始数据的每行
	row_info=table_r.row_values(i) #读取一行的数据
	pre_data = row_info[0]	#读取第0列的数据
	add_row = len(pre_data.split('/')) #获得拆分后的字符串数组的元素个数
	print('add_row',add_row) #打印信息,可省略
	for k in range(add_row):
		table_w.write(row_w+k,0,pre_data.split('/')[k])
		print(row_w+k,k) #打印信息,可省略
		for j in range(1,ncols):
			table_w.write(row_w+k,j,row_info[j])
	row_w+=add_row
	print(pre_data.split('/')) #根据“/”划分单元格中的数据;打印信息,可省略

data_w.save('result.xls') #不能保存为xlsx,打开会报错
问题小结
  1. 通过xlwt只能在单元格写入一次数据,重复写入会报错“overwrite”。
  2. range()的用法:range(start, stop, step), 从start增加至stop(不含stop),步长为step。默认的start值为0,默认的step值为1。例如:range(5) 等同于C语言中的for(int i=0; i<5; i++)。
  3. split()的用法:括号内为指定的分隔符,也可指定分隔个数(此处略),得到的结果是字符串数组。若输入的字符串中不存在分隔符,得到的结果是原字符串。
  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值