受托想要写一个可以把Excel表里一列数据变成三列的方法,顺便练习一下xlwt/xlrd的用法。确实是新手小白,写完后才发现Excel里可以直接通过函数实现该功能(具体参见https://zhidao.baidu.com/question/459558708791978645.html)。
另外,在学习的时候,发现有一篇文章对xlrd库的操作有非常详尽的整理和说明,这里也附上链接,备不时之需。(https://blog.csdn.net/lis_12/article/details/52805591)
一、功能代码
#引入第三方库xlwt/xlrd
import xlwt
import xlrd
#利用xlrd读取文件‘input.xlsx’中的数据
book1 = xlrd.open_workbook(‘input.xlsx‘) #打开工作簿
sheet1 = book1.sheet_by_name(‘Sheet1‘) #通过名称获得工作表Sheet1的内容
data = sheet1.col_values(0) 读取第一列数据。注意,这里用的是sheet.col_values(0),如果用sheet1.cols(0),虽然也能返回列表,但其中元素类型不能被直接写入新的表
#利用xlwt把数据写入新文件
booka =xlwt.Workbook(encoding=‘utf-8‘)
sheeta = booka.add_sheet(‘sheet1‘)
n=0 #用来计算读入数据的个数
c=-1 #表示第几列(column)
r=0 #表示第几行(row)
for i in data: #遍历列表data中的元素并把他们写入新文件
if i == ‘‘:
break #若遇到空的单元格,就推出循环
n+=1
if (n-1)%3 == 0:
r+=1
c=0 #一排放三个数,第四个数就要换行
else:
c+=1
#print(r,c,i,type(r),type(i)) 直接输出结果用来检验是否正确运行
sheeta.write(r,c,i)
#保存文件
booka.save(‘output.xls‘)
二、打包程序
有的系统可能并没有安装python的IDLE或者python的解释器,为了在这样的系统中执行,就需要把-.py的源代码转换为无需源代码的可执行文件。该功能可以通过PyInstaller库来实现。它可以把任何-.py扩展名的源代码转换成Windows(exe文件)、linux和Mac OS X下的可执行文件。
在命令行(cmd)下进入源代码所在的路径,输入以下命令:
1、pyinstaller -F OneColumnToThree.py
执行后会生成三个文件夹,其中dist下的exe文件为我们所需要的可执行文件,其余的删掉就行了。也可以用pyinstaller --clean OneColumnToThree.py来清理临时文件。
2、pyinstaller -i curve.ico -F OneColumnToThree.py
比上一个命令多了-i,用来改变exe文件的图标。
最后,把输入文件input.xlsx和exe文件放到一起,就可以在没有解释器的系统上运行了。
2019.12.9 python_Excel_xlwt/xlrd的初步使用
原文:https://www.cnblogs.com/s-qw/p/12012326.html