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

特色简介

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

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

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

openpyxl读写.xlsx格式的excel;

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

xlrd

import xlrd
#打开excel
data = 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.nrows
ncols = 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).value
cell_C4 = table.cell(2,3).value
#分别使用行列索引
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‘)
‘‘‘
如果对一个单元格重复操作,会引发
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‘)
#另外,使用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")

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

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

 

实例

import xlrd,xlwt
import openpyxl

def 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)

  

原文地址:https://www.cnblogs.com/lansan0701/p/9887675.html

时间: 2024-08-29 02:13:58

python3使用xlrd、xlwt、xlutils、openpyxl、xlsxwriter操作excel的相关文章

Python处理Excel文档(xlrd, xlwt, xlutils)

简介 xlrd,xlwt和xlutils是用Python处理Excel文档(*.xls)的高效率工具.其中,xlrd只能读取xls,xlwt只能新建xls(不可以修改),xlutils能将xlrd.Book转为xlwt.Workbook,从而得以在现有xls的基础上修改数据,并创建一个新的xls,实现修改. (以下属性或方法并非全部,需要更多属性请参看文档:建议先参考文末Demo,再深入了解) xlrd Book(class) 由xlrd.open_work("example.xls"

xlrd/xlwt与openpyxl的读写效率比较

之前写过python中xlrd/xlwt与openpyxl处理Excel的文章,也提到过两者的主要区别在于写入操作,其中xlwt针对Ecxec2007之前的版本,即.xls文件,其要求单个sheet不超过65535行,而openpyxl则主要针对Excel2007之后的版本(.xlsx),它对文件大小没有限制.另外就是两者读写速度存在差异,为了比较它们的差异,特别做了以下测试: 测试一:xlrd与openpyxl的读取速度差异 ?? 由于文件较小时,两者差别不明显,因此这里选取了一个137732

【python】操作excel——xlrd xlwt xlutils

from xlutils.copy import copy import xlrd # import xlutils #打开已存在的excel rb=xlrd.open_workbook('D:\\1.xls',formatting_info=True, on_demand=True) rs=rb.sheet_by_index(0).cell(0,0).value #复制 wb=copy(rb) #插入or修改数据 wb.get_sheet(0).write(1,0,'7') #保存(保存的路径

Python xlsxwriter操作excel一例

# encoding: utf-8 #!/usr/bin/python #author: zhangdonghong #email: [email protected] #date: 2014-12-06 import MySQLdb import datetime,time import xlsxwriter def getInfo(): #now = datetime.datetime.now().strftime('%Y-%m-%d') Monday = datetime.datetime

Python利用openpyxl来操作Excel,一看包你会!

自动化的工作是为了从繁琐重复的劳动中挣脱出来,把精力用在数据分析上.自动化方面python是在好不过了,不过既然要提交报表, 就不免要美观什么的.pandas虽然很强大,但是无法对Excel完全操作,现学vba有点来不及.于是就找到这个openpyxl包,用python来修改Excel.如下所示: from openpyxl import load_workbook from openpyxl.styles import colors, Font, Fill, NamedStyle from o

使用openpyxl去操作Excel表格

对表格的数据写操作: from openpyxl import Workbook wb=Workbook() w1=wb.create_sheet('index',0) # w1["E4"]="碧玉妆成一树高,万条垂下绿丝绦" # w1.cell(row=3,column=5,value="孤舟蓑笠翁,独钓寒江雪") w1['A1']=2 w1['A2']=3 w1['A3']=7 w1['A4']='=sum(A1:A3)' wb.save(&

openpyxl python 操作Excel表格

from openpyxl import Workbook # 实例一个Workbook wb = Workbook() # 激活工作表 ws = wb.active # 数据可以直接赋值给单元格 ws['A1'] = 42 # 在下一行追加一行1,2,3 ws.append([1, 2, 3]) # Python类型可以自动转换成Excel类型 import datetime ws['A3'] = datetime.datetime.now() # 保存文件 wb.save("sample.x

利用openpyxl模块来操作Excel

python 读写 excel 有好多选择,但是,方便操作的库不多,在我尝试了几个库之后,我觉得两个比较方便的库分别是 xlrd/xlwt.openpyxl. 之所以推荐两个库是因为这两个库分别操作的是不同版本的 excel,xlrd操作的是 xls/xlxs 格式的 excel,而 openpyxl 只支持 xlxs 格式的excel,openpyxl使用起来会更方便一些,所以如果你只操作 xlxs 文件的话,那么可以优先选择 openpyxl,如果要兼容 xls 的话,那就用 xlrd/xl

使用openpyxl操作Excel

删除列数据 使用openpyxl库操作Excel,可以删除指定的列 import openpyxl file_path = r"C:\Users\Desktop\test.xlsx" wb = openpyxl.load_workbook(filename) # 读取Excel文件 ws = wb.active # 激活Excel ws.delete_cols(4) # 删除第4列数据 ws.delete_cols(3) # 删除第3列数据 wb.save(file_path) # 保