[Python] Python与Excel--只读|只写|读写|创建图表

来源:互联网 发布:mac怎么强制退出软件 编辑:程序博客网 时间:2024/06/05 09:04

  • xlrd只读
    • 打开excel文件
    • 打开表
    • 获取整行和整列值数组
    • 获取行数和列数
    • 循环行列表数据
    • 指定单元格
    • 行列索引
    • 简单写入
  • xlwt只写
  • xlutils修改
  • openpyxl读写大数据
  • xlsxwriter 写和添加图表

库介绍:

  1. 对于版本
    xlrd,xlwt比较老,只能处理由Excel 97-2003或者Excel 97之前版本的xls格式。xlwt甚至不支持07版本以后的excel,这个格式excel文件一般来说,最大只能支持256列或者65536行的excel文件。

  2. 对于大数据
    xlwt库保存大数据时报错:Exception: String longer than 32767 characters
    面对需要导出大量数据excel情况,你有:(1)换一种存储格式,如保存为csv文件(2)使用openpyxl,因为它支持对Excel2007+xlsx/xlsm格式的处理 (3)win32 COM(windows only)

xlrd只读

xlrd并非python原生库,需要安装

打开excel文件

data = xlrd.open_workbook('excelFile.xlsx') 

打开表

table = data.sheets()[0] #通过索引table = data.sheet_by_name(u'Sheet1') #通过名称获取

获取整行和整列值(数组)

table.row_values(i) #获取第i行table.col_values(i) #获取第i列

获取行数和列数

nrows = table.nrowsncols = table.ncols

循环行列表数据

for i in range(nrows):    print table.row_values(i)

指定单元格

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

简单写入

table.put_cell(row,col,ctype,value,xf)# row行号# col列号# ctype类型    # 0 empty,1 string,2 number,3 date,4 boolean,5 error# value单元格的值# xf扩展的格式化tabl.cell(0,0) #单元格的值table.cell(0,0).value #单元格的值

xlwt只写

xlwt并非python原生库,需要安装

wb = xlwt.WorkBook() #创建excel对象sheet = wb.add_sheet('sheet 1') #创建sheet对象sheet.write(0,1,'我是第0行第一列的内容') #写入wb.save('test.xls') #保存成excel文件

xlutils修改

xlutils并非python原生库,需要安装

import xlrdfrom xlutils.copy import copyrb = xlrd.open_workbook(u'测试.xls') #打开excel文件wb = copy(rb) #复制原来的数据ws = wb.get_sheet(0) #得到表格ws.write(3,0,'修改') #修改单元格新年喜wb.save(u'测试.xls') #保存,重名即覆盖

openpyxl读写大数据

openpyxl需要安装

from openpyxl import Workbookfrom openpyxl import load_workbookform openpyxl.write.excel import ExcelWriterwb = load_workbook(u'读写测试.xls') #加载excelsheetnames = wb.get_sheet_names() #获取表单名字sheet = wb.get_sheet_by_name(sheetnames[0]) #打开下标为0的表单print sheet.cell(row=3,column=3).value #读取数据sheet['A1'] = '改变!' #修改数据wb.save(u'测试读写.xls') #保存

xlsxwriter 写和添加图表

import xlsxwriterdef get_chart(series)    chart = workbook.add_chart({'type': 'line'})    for ses in series:        name = ses["name"]        values = ses["values"]        chart.add_series({             'name': name,            'categories': 'A2:A10',            'values':values        })      chart.set_size({'width': 700, 'height': 350})     return chartif __name__ == '__main__':    workbook = xlsxwriter.Workbook(u'H5应用中心关键数据及趋势.xlsx')     worksheet = workbook.add_worksheet(u"每日PV,UV")    headings = ['日期', '平均值']    worksheet.write_row('A1', headings)    index=0    for row in range(1,10):        for com in [0,1]:            worksheet.write(row,com,index)            index+=1      series = [{"name":"平均值","values":"B2:B10"}]    chart = get_chart(series)    chart.set_title ({'name': '每日页面分享数据'})      worksheet.insert_chart('H7', chart)    workbook.close()
原创粉丝点击