Python修改Excel文件

xlwt:  Download |  Documentation |  Examples
xlutils:  Download |  Documentation

Python Excel 格式控制: python-excel-format    python-excel-format2

Python中一般使用 xlrd(excel read)来读取Excel文件,使用 xlwt(excel write)来生成Excel文件(可以控制Excel中单元格的格式),需要注意的是,用 xlrd读取excel是不能对其进行操作的:xlrd.open_workbook()方法返回xlrd.Book类型,是只读的,不能对其进行操作。而xlwt.Workbook()返回的xlwt.Workbook类型的save(filepath)方法可以保存excel文件。
因此对于读取和生成Excel文件都非常容易处理,但是对于已经存在的Excel文件进行修改就比较麻烦了。不过,还有一个 xlutils(依赖于xlrd和xlwt)提供复制excel文件内容和修改文件的功能。其实际也只是在xlrd.Book和xlwt.Workbook之间建立了一个管道而已


xlrd:
# encoding : utf-8      #设置编码方式
import xlrd                    #导入xlrd模块

#打开excel文件
xlsfile = r'D:\AutoPlan\apisnew.xls' #打开指定文件路径的excel文件
book = xlrd.open_workbook(xlsfile)    #获得excel的book对象.  open_workbook可以接受文件或者文件流

#获取sheet对象,方法有2种:
sheet_name=book.sheet_names()[0]          #获得指定索引的sheet名字
sheet1=book.sheet_by_name(sheet_name)  #通过sheet名字来获取,当然如果你知道sheet名字了可以直接指定
sheet0=book.sheet_by_index(0)    #通过sheet索引获得sheet对象

#获取行数和列数:
nrows = sheet.nrows    #行总数
ncols = sheet.ncols  #列总数

#获得指定行、列的值,返回对象为一个值列表
row_data = sheet.row_values(0)  #获得第1行的数据列表
col_data = sheet.col_values(0)  #获得第一列的数据列表,然后就可以迭代里面的数据了

#通过cell的位置坐标获得指定cell的值. 注意cell value中认为纯数字为double变量
cell_value1 = sheet.cell_value(0,1)  ##只有cell的值内容,如:http://xxx.xxx.xxx.xxx:8850/2/photos/square/
cell_value2 = sheet.cell(0,1) ##除了cell值内容外还有附加属性,如:text:u'http://xxx.xxx.xxx.xxx:8850/2/photos/square/'


xlwt:
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet(u '测试单元格') #增加sheet
ws.write(0, 0, 'Firstname')
ws.write(0, 1, 'Surname')
ws.write(1, 0, 'Hans')
ws.write(1, 1, 'Muster')

#write_merge( self, r1, r2, c1, c2, label= "", style=Style.default_style) #合并单元格的写数据
workbook.save(r 'c:/10. xls ')


Django中导出:
import xlwt
def export_excel(request):
    response = HttpResponse(mimetype="application/ms-excel")
    response['Content-Disposition'] = 'attachment; filename=export_file.xls'
    wb = xlwt.Workbook()
    ws = wb.add_sheet('Sheetname')
    ws.write(0, 0, 'Firstname')
    ws.write(0, 1, 'Surname')
    ws.write(1, 0, 'Hans')
    ws.write(1, 1, 'Muster')

    wb.save(response)
    return response

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值