python创建excel表格_如何在Python中创建Excel表格

之前在学习os模块中,我们知道了如何创建一个txt格式的文件(具体操作见https://mp.csdn.net/postedit/80903024)

但是当我们爬取一些小说或一些图片时,我们需要分类管理这些数据,这时候文件似乎无法直接描述出这些数据的关系,那么我们就需要创建一个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)

输出结果:

70

关于其中的代码我解释一下:

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对象进行内容读取

reader=csv.reader(read_file)

print(reader)

print(list(reader))

输出结果:

<_csv.reader object at 0x02156AB0>

[['张三', '123', 'abc'], ['李四', '456', 'xyz'], ['王五', '789', 'ij'], ['张三', '123', 'abc'], ['李四', '456', 'xyz'], ['王五', '789', 'ij'], ['张', '三', '1', '2', '3'], ['李', '四', '4', '5', '6'], ['王', '五', '7', '8', '9']]

注意:如果直接打印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表的两种方法,小伙伴们学会了吗?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值