python中操作excel文件方法总结

最近需要写个python脚本,可以修改已有excel文件并保存,在网上看了一下大家的办法,我也根据我用的情况,总结一下,供大家参考。


方法一:openpyxl,优点:(也可以说是缺点)只能读excel2007格式的文件

#-*- encoding: utf-8 -*-  
   
from openpyxl.workbook import Workbook     
from openpyxl.writer.excel import ExcelWriter   
from openpyxl.cell import get_column_letter
from openpyxl.reader.excel import load_workbook

# write results to excel file            
def writeExcel(targetFile,sheetName):
    #读取excel2007文件 
    wb = load_workbook(targetFile)
    #新建一个excelWriter   
    ew = ExcelWriter(wb)
    
    #根据sheet的名称得到sheet
    ws = wb.get_sheet_by_name(sheetName)  

    #修改sheet的内容,可以按单元格指定,也可以根据数字坐标,使用get_column_letter方法得到横坐标的字母
    ws.cell('E2').value = "e2"
    #保存文件
    ew.save(targetFile)
     
if  __name__ =="__main__":
    writeExcel("C:\\日报.xlsx","Sheet1")


方法二:xlrd,缺点:只能读escel2003及以下格式的文件

#-*- encoding: utf-8 -*-  

from xlrd import open_workbook
from xlutils.copy import copy

def writeExcel2003(targetFile,sheetName):
    #打开excel文件,formatting_info=True可以指定保存格式
    rb = open_workbook(filename=targetFile,formatting_info=True)
 
    #通过xlutils.copy转换为可以写的格式
    wb = copy(rb)
 
    #通过序号获取的sheet
    ws = wb.get_sheet(0)
    ws.write(0, 0, 'hello') #注意单元格坐标从(0,0)开始
    wb.save(targetFile)

if  __name__ =="__main__":
    writeExcel2003("C:\\日报.xls","Sheet1")

方法三:pywin32,可以读所有的excel文件

#-*- encoding: utf-8 -*-  

import win32com.client

def writeExcelWin32(targetFile,sheetName,list_result):
    #创建excel    
    xlsApp = win32com.client.Dispatch("Excel.Application")
    #打开excel文件
    xlsBook = xlsApp.Workbooks.Open(targetFile)
    #打开sheet
    xlsSheet = xlsBook.Sheets(sheetName)

    #修改数据
    for i in range(2,len(list_result[0])):
        xlsSheet.Cells(18,i+3).Value = list_result[0][i]   #注意单元格坐标从(1,1)开始
   
    xlsBook.Save()
    xlsBook.Close()
    xlsApp.Quit()

if  __name__ =="__main__":
    writeExcelWin32("C:\\日报.xls","Sheet1",list_result)


总结一下三个方法:


方法一只能读excel2007的文件,但是修改文件后再保存,原文件的格式、颜色、公式等都不能保存。


方法二只能读取excel2003的文件,打开文件是通过设置formatting_info=True   可以在重新保存时可以保存格式、单元格颜色等,但是公式也不能保存(或者我还没有发现,呵呵)


方法三能读取所有的excel文件,原文件的格式、颜色、公式等都可以保存,使用效果最好。但是方法三实际是调用excel的接口,所本机上必须要安装excel,这样python脚本只能在windows上运行。而方法一和二没有这个问题。


综上,要是只在windows上运行的同学,推荐使用方法三。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值