python3使用xlrd、xlwt、xlutils、openpyxl、xlsxwriter操作excel,,特色简介xlrd主要


特色简介

xlrd主要用来读excel,针对.xls格式;

xlwt主要用来写excel,针对.xls格式;

xlutils结合xlrd可以达到修改excel文件目的,需要注意的是你必须同时安装这三个库;

openpyxl读写.xlsx格式的excel;

xlsxwriter可以写excel文件并加上图表,缺点是不能打开/修改已有文件,意味着使用 xlsxwriter 需要从零开始。

xlrd

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

xlwt

import xlwt#新建一个excel文件file = xlwt.Workbook() #注意这里的Workbook首字母是大写#新建一个sheettable = file.add_sheet(‘sheet name‘)#写入数据table.write(行,列,value)table.write(0,0,‘test‘)
‘‘‘如果对一个单元格重复操作,会引发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‘)
#另外,使用stylestyle = xlwt.XFStyle() #初始化样式font = xlwt.Font() #为样式创建字体font.name = ‘Times New Roman‘font.bold = Truestyle.font = font #为样式设置字体table.write(0, 0, ‘some bold Times text‘, style) # 使用样式

 

openpyxl

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

https://www.missshi.cn/api/view/blog/5a001868e519f50d04000350

http://blog.51cto.com/daimalaobing/2089686

 

实例

import xlrd,xlwtimport openpyxldef write03(path):    wb = xlwt.Workbook()    sheet = wb.add_sheet("2003测试表")    value =  [["名称", "价格", "出版社", "语言"],             ["如何高效读懂一本书", "22.3", "机械工业出版社", "中文"],             ["暗时间", "32.4", "人民邮电出版社", "中文"],             ["拆掉思维里的墙", "26.7", "机械工业出版社", "中文"]]    for i in range(0,4):        for j in range(0,len(value[i])):            sheet.write(i,j,value[i][j])    wb.save(path)    print("2003写入数据成功!")def read03(path):    workbook = xlrd.open_workbook(path)    sheets = workbook.sheet_names()    worksheet = workbook.sheet_by_name(sheets[0])    for i in range(0, worksheet.nrows):        row = worksheet.row(i)        for j in range(0, worksheet.ncols):            print(worksheet.cell_value(i,j),"\t",end="")        print()def write07(path):    wb = openpyxl.Workbook()    sheet = wb.active    sheet.title = ‘2007测试表‘    value = [["名称", "价格", "出版社", "语言"],             ["如何高效读懂一本书", "22.3", "机械工业出版社", "中文"],             ["暗时间", "32.4", "人民邮电出版社", "中文"],             ["拆掉思维里的墙", "26.7", "机械工业出版社", "中文"]]    for i in range(0,4):        for j in range(0,len(value[i])):            sheet.cell(row=i+1, column=j+1, value=str(value[i][j]))    wb.save(path)    print("2007写入数据成功!")def read07(path):    wb = openpyxl.load_workbook(path)    sheet = wb.get_sheet_by_name(‘2007测试表‘)    for row in sheet.rows:        for cell in row:            print(cell.value,"\t",end="")        print()file_2003 = ‘../data/2003.xls‘file_2007 = ‘../data/2007.xlsx‘write03(file_2003)read03(file_2003)write07(file_2007)read07(file_2007)

  

python3使用xlrd、xlwt、xlutils、openpyxl、xlsxwriter操作excel

评论关闭