Python 简单 操作 Excel

一、相关的库

  • xlrd:用来读 Excel,只能操作 .xls 格式
  • xlwt:用来写 Excel,只能操作 .xls 格式,超出 Excel 的单格内容长度上限 32767 就会报错
  • xlutils:结合 xlrd 可以修改 Excel 文件,格式也要是 .xls,但必须同时安装以上3个库
  • openpyxl:可以读写 Excel,针对 .xlsx 格式,无长度限制

二、xlrd

import xlrd
#打开excel
data = xlrd.open_workbook('demo.xls') #注意这里的workbook首字母是小写<br>
#查看文件中包含sheet的名称
data.sheet_names()<br>
#得到第一个工作表,或者通过索引顺序 或 工作表名称
table = data.sheets()[0]
table = data.sheet_by_index(0)
table = data.sheet_by_name(u'Sheet1')<br>
#获取行数和列数
nrows = table.nrows
ncols = table.ncols<br>
#获取整行和整列的值(数组)
table.row_values(i)
table.col_values(i)<br>
#循环行,得到索引的列表
for rownum in range(table.nrows):
print table.row_values(rownum)<br>
#单元格
cell_A1 = table.cell(0,0).value
cell_C4 = table.cell(2,3).value<br>
#分别使用行列索引
cell_A1 = table.row(0)[0].value
cell_A2 = table.col(1)[0].value

三、xlwt

import xlwt
 
#新建一个excel文件
file = xlwt.Workbook() #注意这里的Workbook首字母是大写
 
#新建一个sheet
table = file.add_sheet('sheet name')
 
#写入数据table.write(行,列,value)
table.write(0,0,'test')<br>
‘‘‘
如果对一个单元格重复操作,会引发
returns error:
Exception: Attempt to overwrite cell:
sheetname=u'sheet 1' rowx=0 colx=0
所以在打开时加cell_overwrite_ok=True解决
’’’
table = file.add_sheet('sheet name',cell_overwrite_ok=True)
 
#保存文件
file.save('demo.xls')<br>
#另外,使用style
style = xlwt.XFStyle() #初始化样式
 
font = xlwt.Font() #为样式创建字体
font.name = 'Times New Roman'
font.bold = True
style.font = font #为样式设置字体
table.write(0, 0, 'some bold Times text', style) # 使用样式

四、openpyxl

from openpyxl import Workbook
wb = Workbook()
  
#取得当前有效的work sheet
ws = wb.active
  
#直接根据位置进行赋值
ws['A1'] = 42
  
#也可以直接添加一行
ws.append([1, 2, 3])
  
#可以直接存储Python的时间类型变量
import datetime
ws['A2'] = datetime.datetime.now()
  
#保存文件
wb.save("sample.xlsx")

猜你喜欢

转载自blog.csdn.net/weixin_41474364/article/details/86711729