python Excel读写操作
2020-12-13 04:25
标签:分行 而不是 master 打开 oval 新建 修改 文档 linux 在数据的存储上,习惯使用txt,json或者数据库,但是如果友好地存储,对外提供,则还是基于Excel显示。如果是简单的字符串,或许会选择cvs,默认使用,作为分割,可以存储为txt,生成文件后修改后缀,但cvs有一个比较坑的地方,使用英文逗号,进行分割。如果处理的字符串中有逗号,或者字符串分行,是没有办法处理的。这种情况下,必须使用Excel。在JAVA中使用POI库对Excel进行操作,在python中使用openpyxl进行操作,版本2007以上的Excel,后缀xlsx。 openpyxl可以友好的实现对文件的追加写入 xlrd,xlwt,pandons 如果不断打开文档写入,会发现是不断在覆盖上次记录,最终还是一条记录。如果做一次性写入若干数据,则可以。如果需要不断打开文档追加,不能实现。 可以参考鄙人的脚本,路径 https://github.com/CaesarLinsa/shell/blob/master/linux/diff_changes_to_excel.sh,将数据多次写入Excel中。 a.创建Excel文件 b.写入数据 c.保存Excel d.Excel追加 在追加Excel时,先要加载Excel,计算出当前sheet中已经使用多上行,从哪一行开始存入数据。 1.加载Excel 2. 获取sheet对象,并计算行数,写入数据 行列读取 sheet.rows为生成器, 里面是每一行的数据,每一行又是一个tuple。 单元格读取 在读前,确保行列都小于等于最大的行数和列数,否则会报错,而不是返回None python Excel读写操作 标签:分行 而不是 master 打开 oval 新建 修改 文档 linux 原文地址:https://www.cnblogs.com/CaesarLinsa/p/11109525.html背景
几种python Excel操作库比较
openpyxl写操作
from openpyxl import Workbook
wb = Workbook() # Excel对象
sheet = wb.active # sheet一个sheet页操作对象
sheet.title="caesar" #新建一个sheet页命名为"caesar"
sheet.cell(1,1,"caesar") # 向第一行第一列的Excel单元格中写入"caesar"
wb.save("caesar.xlsx")# 以上sheet页命名及数据存入caesar.xlsx中
wb=openpyxl.load_workbook("caesar.xlsx")
sheet=wb.worksheets[0]
rows=sheet.max_row
sheet.cell(rows+1, 1, ‘Marcovaldo‘)# 像开始行的第一列写入“Marcovaldo”
openpyxl读操作
sheet.columns类似,里面是每个tuple是每一列的单元格。
如果需要获取某一行或列的数据,需要在外部定义计数器,获取到那一行时,遍历其中每个cellfor 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)
>>> d=sheet.cell(row=2, column =1)
>>> print d