重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
python处理excel教程:首先打开pycharm工具,创建python项目;然后新建python文件,依次导入openpyxl、xlrd和xlwt,并定义函数;接着向excel插入数据;最后调用函数加载数据即可。
创新互联专业为企业提供英吉沙网站建设、英吉沙做网站、英吉沙网站设计、英吉沙网站制作等企业网站建设、网页设计与制作、英吉沙企业网站模板建站服务,十余年英吉沙做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
python处理excel教程:
1、打开pycharm工具,创建一个python项目,并打开项目
2、在指定文件夹下,新建python文件,依次导入openpyxl、xlrd和xlwt
3、定义函数write_data,创建excel的sheet页,然后向excel插入数据
4、再定义设置excel文档格式样式函数setExcelStyle,传入几个参数
5、判断__name__是否等于__main__,调用函数write_data()
6、保存代码并运行python文件,查看是否生成sales.xlsx文件
7、使用openpyxl模块中的load_workbook()方法,加载sales.xlsx文件
8、获取对应sheet页,然后获取对应单元格的值
以上就是小编分享的关于python处理excel教程是什么的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!
你这里存在一个误区,只靠xlrd和xlwt不能直接实现对已经存在Excel进行数据插入,原因如下:
1、使用xlrd的xlrd.open_workbook()方法打开文件返回的是一个只读对象,只能读Excel内容,不能向Excel写入数据;
2、使用xlwt的xlwt.Workbook()方法是创建一个空的Excel对象,然后向里面写入;
所以读取和创建Excel都可以直接实现,但是修改已经存在的Excel需要借助xlutils,它的作用是在xlrd类型的workbook和xlwt类型的workbook之间建立了一个管道,利用xlutils的copy方法将只读对象变成可写对象,简单代码实现如下:
import xlrd
from xlutils.copy import copy
readOnlyWorkbook = xlrd.open_workbook('TestFile.xls')
readOnlySheet= readOnlyWorkbook.sheet_by_index(0) # 通过sheet_by_index()获取的sheet没有write()方法
writableWorkbook= copy(readOnlyWorkbook) # 利用xlutils.copy函数,将xlrd.Book转为xlwt.Workbook
writableSheet = writableWorkbook.get_sheet(0) # 通过get_sheet()获取的sheet有write()方法
writableSheet.write(3, 3, 'insertData') # 写入3,3这个单元格
writableWorkbook.save('TestFile.xls') # 保存文件
你自己增加代码判断原Excel某个单元格是否有数据,完善你的代码,避免插入时覆盖了,运行后Excel情况见截图
上述方法我写的是不能“直接”实现已有Excel的数据插入或修改,但是可以间接的来
使用xlrd读原有Excel
使用xlwt创建一个新文件并把1中读取的内容写入
再插入需要增加的数据,保存
删掉原Excel,把新创建的Excel改成原Excel的名字
这种方法你就自己玩,因为原来Excel可能有格式啊,公式啊什么的,新创建就会很麻烦
我们之前已经学习了xlrd这个库,这个库是读取excel表格内信息的,它并不能写入信息,这时候我们需要使用xlwt3这个库进行excel表格的写入。
打开命令提示符,使用pip进行安装
安装完后进入下一步:
这个xlwt3的库,好像已经很久没有人维护了,所以有一个问题就是,你用pip安装的这个库,是有点问题的,需要咱们手动修改。
打开python的安装目录,就是你的python的安装位置,我的在D盘,找到D:\Python34\Lib\site-packages\xlwt3\formula.py这个文件,右键点击,使用IDLE打开
将其中的
修改为
就是把第一个" __init__ "删掉。
打开python shell
使用 import xlwt3 ,看看报不报错,没有报错说明修改成功。安装完成。
我们使用这个包主要是为了生成excel表格,将我们处理好的数据存到excel表格中。
为此,我们需要的是xlwt3里面的Workbook这个类。
先创建实例:
这样就创建完了一个实例。
我们知道,一个.xlsx文件或.xls文件称为一个工作簿,里面有好几张工作表,我们现在创建的这个Workbook()实例,它也是一个工作簿,我们要写入内容的话是要写进工作表里面的,这就需要我们创建一个工作表,工作表名是'test1'。
使用的是Workbook下属的add_sheet方法,add_sheet,新建工作表。
add_sheet(self, sheetname, cell_overwrite_ok=False)
需要注意的是,这个方法有两个参数
· 第一个是sheetname,这个是工作表的名字,必须要设置的
· 另一个参数是cell_overwrite_ok,这个参数是覆写的意思,默认是False,如果你现在要写的单元格里面,已经有内容了,就不能写了,如果你要是写的话会报错的。当然,我们在使用的时候,最好是设置成True。也就是上面的那个写法。这样对同一个单元格写入两次的话就不会报错了,当然,只会保留最后一次写入的值。
接下来可以写入信息了。
事实上,我们刚才使用add_sheet这个方法后,创建出了一个Worksheet类的实例。这个类有两个方法是我们需要使用的,一个是write,另一个是write_merge。前者用来写入一个单元格的内容,后者用来写入一个合并单元格的内容。
我们先看write方法,里面有四个参数,分别是r,c,label,style,
· r是行
· c是列
· label是内容
· style是格式
上面写的 table.write(1,0,'number') 是在第二行的第一列写入'number'这个字符串。
同理,另外两句分别是在第二行的第二列和第二行的第三列写入'name'和'score'这两个字符串。
write_merge是写合并单元格的方法
· r1是最上面的单元格所在的行数
· r2是最下面的单元格所在的行数
· c1是最左面的单元格所在的列数
· c2是最右面的单元格所在的列数
· label是要写入的内容
· style是格式
上面那个 table.write_merge(0,0,0,2,'Student information') ,是把第0行的第一列,第二列,第三列的单元格合并了,在里面写入'Student information'这个字符串。
如果我们写入信息的时候,不加style这个参数,那么里面的信息就是最普通的,没有什么格式,颜色啊,粗体啊,边框啊,什么的。
在xlwt3中,使用easyxf这个函数来设置单元格属性。
比如这句当中,我们可以看到传入了一个字符串作为参数:
'font: bold on, italic on, name 宋体, height 400, color red; align: vert centre, horiz centre; borders: top THIN,left THIN,right THIN,bottom THIN'
分解来看,这个字符串有三部分:
我们刚才不是用
创建了一个单元格属性吗,红色20号宋体,粗体,斜体,四周有边框,居中。
写入的使用加在作为style参数传入。
这样,我们就成功的设置单元格格式了。
接下来我们设置列宽。
使用这个方法就能设置列宽了,里面的0代表第一列,列宽是20。我也不知道这个列宽是怎么换算的,只要设置5293的话就是20,大家可以根据换算设置自己想要的列宽。
最后一步,保存我们建立的工作簿。
这里面就一个参数,你要保存的excel表格的文件名。需要加路径和后缀名的。需要注意的是,这个xlwt3只能保存成.xls的excel文件。
打开我们保存的excel表格。
可以看到,工作表名是我们设置的test1,第一行的前三个单元格合并了,内容是'Student information',红色20号宋体,粗体,斜体,四周有边框,居中。第二行分别是number,name,score。
以上就是创建这个excel表格的流程。
刚才上pypi发现,这个包好像就要被移除了,这样的话以后用pip就无法安装了。
xlwt3 0.1.2 : Python Package Index
以上就是关于xlwt3这个包的简单教程。
前提摘要:1. 安装好xlwt,cmd命令:pip install xlwt
2.引用xlrd模块 :import xlwt
1.新建一个文档
2.创建表单
3.写入单个单元格数据
4.写入整行数据
5.写入整列数据
4.保存数据