美文网首页
使用python操作excel

使用python操作excel

作者: 抬头看月亮 | 来源:发表于2017-12-11 11:44 被阅读0次

上周临时接到一个活,要对excel文件做一些操作,涉及到复制文件、修改已有文件(修改单元格的值、插入行、设置合并单元格的边框)。下面将大概介绍一下用到的工具和方法。

  • 工具
    python

其实博主写的最多的是Java,但是觉得Java有点重,这里想换换手,所以选了python。中途遇到困难一度想是不是去用Java的POI,但是忍住了,哈哈。

import os 
from openpyxl import load_workbook
from openpyxl.styles import Border, Side, PatternFill, Font, GradientFill, Alignment
from openpyxl.writer.excel import ExcelWriter 
import shutil
import func_insert_row
import time

可以看到这里用的是openpyxl,为啥不用pandas,xlrd,xlwt呢? 其实上来是用的pandas,但是发现它似乎是用来处理数据,而不是用来操作excel,后来经过搜索研究(当然也是很快的),openpyxl在操作excel上应该是功能最强大的。

  • 方法

主要涉及到这样几个操作:

  1. 复制文件
    复制文件用的是
 shutil.copy('template.xlsx','test.xlsx')
  1. 获取workbook
 workbook_temp = load_workbook('test.xlsx')
 main_sheet_temp = workbook_temp.get_sheet_by_name('Sheet1')
  1. 修改单元格的值
    直接使用=就好,下面是修改main_sheet_temp的B3单元格的值为1024
main_sheet_temp['B3'] = '1024'
  1. 插入行
    参考了此处

最后一个是 关于样式的,因为使用openyxl修改了现有文件后,会把现有文件中合并单元格的边框去掉。
这个暂时没有办法解决,只能后期再把这个边框添加上去,下面就会讲到。

  1. 设置合并单元格的边框
    参考了官方文档 里的style_range方法

最后,可能会用到的方法还有:

main_sheet_temp.max_row  #获取sheet里的内容行数
main_sheet_temp.merged_cell_ranges #获取sheet里的所有合并单元格

相关文章

网友评论

      本文标题:使用python操作excel

      本文链接:https://www.haomeiwen.com/subject/svkiixtx.html