如何在Python中创建Excel表格
但是当我们爬取⼀些⼩说或⼀些图⽚时,我们需要分类管理这些数据,这时候⽂件似乎⽆法直接描述出这些数据的关系,那么我们就需要创建⼀个Excel表格了
创建Excel表格⼀般有两种⽅法:
⼀:通过导⼊xlwt库来创建,这种是最常规的⽅法,不过相对也⽐较⿇烦
⼆:通过导⼊csv库来创建
接下来我们具体操作⼀下
⼀:使⽤xlwt库
import xlwt
work_book=xlwt.Workbook(encoding='utf-8')
sheet=work_book.add_sheet('sheet表名')
sheet.write(0,0,'第⼀⾏第⼀列')
sheet.write(0,1,'第⼀⾏第⼆列')
work_book.save('Excel表.xls')
这种⽅法创建Excel表的过程很直观,也很好理解,这⾥来逐⾏解释⼀下
1 导⼊xlwt库
2 创建⼯作表对象,并设置编码格式为utf-8
3 添加⼀个sheet表,参数为sheet的表名
4 sheet.write()是写⼊内容的⽅法
参数⼀:表⽰⾏数
参数⼆:表⽰列数
参数三:表⽰要写⼊的内容
6 保存Excel表,注意表名后⾯要加.xls后缀
⼆、使⽤csv库
csv全称:comma sepreated value 逗号分割值
使⽤csv创建Excel表与os创建txt⽂件形式上差不多,因为使⽤csv的话系统会直接以Excel表的形式帮你保存数据
不需要你额外再创建Excel表
不过csv创建的Excel表格并不完全算是.xls⽂件,它与平常的.xls⽂件有以下⼏种不同:
1.由于是纯⽂本,所以所有的值均为字符串类型
2.⽆法进⾏字体操作和单元格操作,⽐如⽆法改变字体⼤⼩,颜⾊等,⽆法改变单元格的⼤⼩等
3.⽆法创建多个⼯作表
4.⽆法嵌⼊图⽚
1.写⼊数据
这⾥依旧先放代码:
注意看rows和rows1的区别
按照rows1的写法数据存⼊的时候会被修改,所以这种写法虽然没有语法错误,但实际执⾏的时候这种写法是错误的
import csv
rows=[['张三',123,'abc'],['李四',456,'xyz'],['王五',789,'ij']]
rows1=['张三123','李四456','王五789']
csv⽂件在写⼊的时候,默认每次写⼊时会有⼀个空⾏作为分割,使⽤newline=''会把空⾏去掉
with open('test1.csv','w',newline='')as csv_file:
# 获取⼀个csv对象进⾏内容写⼊
writer=csv.writer(csv_file)
for row in rows:
# writerow 写⼊⼀⾏数据
writer.writerow(row)
# 写⼊多⾏
writer.writerows(rows)
writer1=csv.writer(csv_file)
for row1 in rows1:
writer1.writerow(row1)
输出结果:
关于其中的代码我解释⼀下:
with open('test1.csv','w',newline='')as csv_file:
open():打开⼀个⽂件
test1.csv: 创建⼀个名字为test1的csv格式的⽂件,csv格式就是Excel表
'w' : 写⼊内容 ,同样的还有 'r':读取内容 'a':追加写⼊内容
newline='' :去掉空⾏ ,⼤家有空的话可以试试不写newline=''的效果,这⾥就不演⽰了
writer.writerows(rows)
这⾏代码是同时写⼊多⾏,效果与逐⾏写⼊⼀样
2.读取数据
以上⾯这个test1.csv⽂件为例:
with open('test1.csv','r')as read_file:
# 获取⼀个csv对象进⾏内容读取
ader(read_file)
print(reader)python怎么读入excel
print(list(reader))
输出结果:
<_ader object at 0x02156AB0>
[['张三', '123', 'abc'], ['李四', '456', 'xyz'], ['王五', '789', 'ij'], ['张三', '123', 'abc'], ['李四', '456', 'xyz'], ['王五', '789', 'ij'], ['张', '三', '1', '2', '3'], ['李', '四', '4', '5', '6'], ['王', '五
注意:如果直接打印reader的话,会显⽰⼀个地址
因为结果最外层是list形式,所以要把reader转换成list类型
DictWriter 和 DictReader
DictWriter:写⼊字典类型的数据
headers=['name','age']
data_dic=[{'name':'⼀','age':'15'},{'name':'⼆','age':'25'}]
with open('dict.csv','w',newline='')as csv_file:
# 写⼊⼀个字典到csv(excel)中,fieldnames设置excel的表头
writer=csv.DictWriter(csv_file,fieldnames=headers)
# 开始写⼊标题
writer.writeheader()
for dict in data_dic:
writer.writerow(dict)
print(dict)
writer.writerows(data_dic)
写法多了⼀⾏写⼊标题,创建writer的时候多了⼀个参数,其余并没有多⼤区别
DictReader:读取字典类型的数据
with open('dict.csv','r')as csv_file:
reader=csv.DictReader(csv_file)
print(list(reader))
输出结果:
[OrderedDict([('name', '⼀'), ('age', '15')]), OrderedDict([('name', '⼆'), ('age', '25')])]
这⾥的结果并不是常规的字典格式
这就是python中创建Excel表的两种⽅法,⼩伙伴们学会了吗?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论