python 读写 excel 笔记

python 读写excel:(主要步骤)


1.使用xlutils实现读写excel

# -*- coding: utf-8 -*-

from xlutils.copy import copy


1.获取excel文件全路径

my_save_excel_fille_name = QtGui.QFileDialog.getSaveFileName(self, u'请选择数据存入的文件', u'/')
print unicode(my_save_excel_fille_name)

2.打开该excel工作簿

old_xls = open_workbook(unicode(my_save_excel_fille_name).replace(u'/', u'\\'), formatting_info=True) 

3.复制一个新的工作簿

new_xls = copy(old_xls)

4.获取表单

new_xls_sheet = new_xls.get_sheet(0)

5.修改表单中的单元格内容

new_xls_sheet.write(9,2, 5.45)

6.保存新的工作簿,和原来同名,实现修改后覆盖

new_xls.save(unicode(my_save_excel_fille_name))


注意:此种方法使用的是xlutils,一般常用于复制文件,复制后原来的excel中的格式不会保存,比如原来的.xlsx文件含有公式,复制后公式失效。

后来使用formatting_info=True,这个也只能实现修改.xls文件,虽然能保留一定的格式,但还是不能保留公式。



2.使用win32com 解决格式保留问题:(缺点好像是不能跨平台)

from win32com import client as wc

1.获取excel文件全路径

my_save_excel_fille_name = QtGui.QFileDialog.getSaveFileName(self, u'请选择数据存入的文件', u'/')
print unicode(my_save_excel_fille_name)

2.启动excel应用

excel = wc.Dispatch('Excel.Application') 

3.不让其显示,相当于后台

excel.Visible = 0

4.打开工作簿
my_excel = excel.Workbooks.Open(unicode(my_save_excel_fille_name).replace(u'/',u'\\'))
print my_excel.Sheets.Count
5.获取表单
my_sheet = my_excel.Sheets('sheet1')
6.统计表单行列总数
print my_sheet.UsedRange.Rows.Count
print my_sheet.UsedRange.Columns.Count
7.读单元格内容
print my_sheet.Cells(9+1,2+1).Value
8.修改单元格内容
my_sheet.Cells(9+1,2+1).Value = 5.00

9.读单元格内容
print my_sheet.Cells(9+1,2+1).Value

10.保存
my_excel.Save()
11.退出

my_excel.Close()

注意:此种方式可以实现对已经存在的excel进行读写,而且能保留之前原有的格式。














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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值