python excel读写操作单位_python Excel读写操作

背景

在数据的存储上,习惯使用txt,json或者数据库,但是如果友好地存储,对外提供,则还是基于Excel显示。如果是简单的字符串,或许会选择cvs,默认使用,作为分割,可以存储为txt,生成文件后修改后缀,但cvs有一个比较坑的地方,使用英文逗号,进行分割。如果处理的字符串中有逗号,或者字符串分行,是没有办法处理的。这种情况下,必须使用Excel。在JAVA中使用POI库对Excel进行操作,在python中使用openpyxl进行操作,版本2007以上的Excel,后缀xlsx。

几种python Excel操作库比较

openpyxl可以友好的实现对文件的追加写入

xlrd,xlwt,pandons 如果不断打开文档写入,会发现是不断在覆盖上次记录,最终还是一条记录。如果做一次性写入若干数据,则可以。如果需要不断打开文档追加,不能实现。

openpyxl写操作

a.创建Excel文件

from openpyxl import Workbook

wb = Workbook() # Excel对象

sheet = wb.active # sheet一个sheet页操作对象

sheet.title="caesar" #新建一个sheet页命名为"caesar"

b.写入数据

sheet.cell(1,1,"caesar") # 向第一行第一列的Excel单元格中写入"caesar"

c.保存Excel

wb.save("caesar.xlsx")# 以上sheet页命名及数据存入caesar.xlsx中

d.Excel追加

在追加Excel时,先要加载Excel,计算出当前sheet中已经使用多上行,从哪一行开始存入数据。

1.加载Excel

wb=openpyxl.load_workbook("caesar.xlsx")

2. 获取sheet对象,并计算行数,写入数据

sheet=wb.worksheets[0]

rows=sheet.max_row

sheet.cell(rows+1, 1, 'Marcovaldo')# 像开始行的第一列写入“Marcovaldo”

openpyxl读操作

行列读取

sheet.rows为生成器, 里面是每一行的数据,每一行又是一个tuple。

sheet.columns类似,里面是每个tuple是每一列的单元格。

如果需要获取某一行或列的数据,需要在外部定义计数器,获取到那一行时,遍历其中每个cell

for row in sheet.rows:

for cell in row:

print(cell.value)

# A1, A2, A3这样的顺序

for column in sheet.columns:

for cell in column:

print(cell.value)

单元格读取

在读前,确保行列都小于等于最大的行数和列数,否则会报错,而不是返回None

>>> d=sheet.cell(row=2, column =1)

>>> print d

>>> d.value

u'+++ ceilometer-10.0.1/AUTHORS\t2018-06-14 23:58:01.000000000 +1000\n'

>>>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值