openpyxl笔记 重制版

来源:互联网 发布:小草淘宝客程序怎么样 编辑:程序博客网 时间:2024/04/28 18:29

参考资料:# 官方文档http://packages.python.org/openpyxl/api.html
# openpyxl 读写excel2007使用笔记
http://blog.csdn.net/hxsyewlink/article/details/6265790
注意,截止2016-02-01 openpyxl仍不支持读取表格和图像,所以如果打开又以同样的名称保存,表格和图像将会丢失。(不过似乎支持插
入图像)
所以,对于非纯文本数字格式的excel文档,还是读出数据再写一个新的吧(可以打开另存为嘛)。

# coding:utf-8#### openpyxl主要内容:## 1. 工作簿/工作表操作## 1.1 新建工作簿/工作表# 新建工作簿from openpyxl import Workbookwbook = Workbook()# 新建工作表# or 建立一个新工作表wsheet_new = wbook.create_sheet()   #输入数字即为次序,例如0 则为最前## 1.2 读取工作簿/工作表# 读取工作簿from openpyxl.reader.excel  import load_workbook# load_workbook(filename, read_only=False, use_iterators=False, keep_vba=False, guess_types=False, data_only=False)# 打开指定的文件名并返回一个Workbook对象## 参数filename: 文件路径或者file-like object (string格式)# 参数read_only: 是否只读# 参数use_iterators: 是否读取单元格时是否使用lazy load,如果True,则工作表对象将成为class:`openpyxl.worksheet.iter_worksheet.IterableWorksheet`# 参数keep_vba: 是否保留VBA对象 (这不代表你能使用它们)# 参数guess_types: 是否猜测单元格的数据数据格式,而不从文件中读取它# 参数data_only: 对于有公式计算的单元格,读取公式还是读取值## 返回类型: class:`openpyxl.workbook.Workbook`# 选取活动工作表wsheet = wbook.active# 按顺序选取工作表# 按名字选取工作表# 选取工作表名称里listsheetNames = wbook.get_sheet_names()# 选择第0个工作表wsheet = wbook.get_sheet_by_name(sheetNames[0])wsheet = wbook[sheetNames[0]]# 工作表重命名wsheet.title = 'Pi'## 1.3 保存工作簿from openpyxl.writer.excel import ExcelWriterwb1=Workbook()#新建立一个工作簿wb1ewb1=ExcelWriter(workbook=wb1)#新建一个ExcelWriter,用来写wb1dest_filename=r'result.xlsx'#wb1的名字ewb1.save(filename=dest_filename)#保存一定要有,否则不会有结果## 2. 读写单元格(单个,list,公式)## 2.0 选择行/列wsheet.rows #是个listwsheet.columns #也是个list# 选中前两列wsheet.columns[:2]# 选中一个区域wsheet['A1':'C20']# 创建新列(通过给一列的每一个格赋值None)alen = len(wsheet.columns[0])# A列for i in range(1, alen + 1):    wsheet.cell('C%s' % (i)).value = None## 2.1 表示单元格的位置(行号,列字母转换为列号)from  openpyxl.cell  import  get_column_lettercol_number = get_column_letter(3) #将第3列转换为C列wsheet.cell('%s%s'%(col_number,3)).value = 3 # 等价于ws.cell('C3').value = 3## 2.2 赋值wsheet.cell('F5' ).value = 3.14## 2.3 公式wsheet["A1"] = "=SUM(1, 1)"## 2.4 单元格数据类型# python datetime格式import datetimewsheet['A1'] = datetime.datetime(2010, 7, 21)wsheet['A1'].number_format# 百分数格式wsheet['B1'] = '3.14%'wsheet['B1'].value## 2.5 单元格格式设置# 单元格合并merge/解除合并unmergewsheet.merge_cells('A1:B1')wsheet.unmerge_cells('A1:B1')wsheet.merge_cells(start_row=2,start_column=1,end_row=2,end_column=4)wsheet.unmerge_cells(start_row=2,start_column=1,end_row=2,end_column=4)

0 0
原创粉丝点击