python的workbook_python openpyxl 操作 excel

>>> ws = wb.active

>>> ws['C9'] = 'hello world'

>>> tuple(ws.rows)

((, , ),

(, , ),

(, , ),

(, , ),

(, , ),

(, , ),

(, , ),

(, , ),

(, , ))

或者 openpyxl.worksheet.Worksheet.columns() 属性:

>>> tuple(ws.columns)

((,

,

,

,

,

,

...

,

,

),

(,

,

,

,

,

,

,

,

))

Saving to a file

最简单最安全的方法保存workbook是使用openpyxl.workbook.Workbook对象的 openpyxl.workbook.Workbook.save()方法:

>>> wb = Workbook()

>>> wb.save('balances.xlsx')

保存的默认位置在python的根目录下。

注意:会自动覆盖已经存在文件名的文件。

Loading from a file

像写一样我们可以导入openpyxl.load_workbook()已经存在的workbook:

>>> from openpyxl import load_workbook

>>> wb2 = load_workbook('test.xlsx')

>>> print wb2.get_sheet_names()

['Sheet2', 'New Title', 'Sheet1']

常用实例

详情参考官方使用文档:

http://openpyxl.readthedocs.io/en/default/usage.html

写入例子一

#!/usr/bin/env python

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

from openpyxl import Workbook

wb = Workbook()

# 激活 worksheet

ws = wb.active

# 数据可以直接分配到单元格中

ws['A1'] = 42

# 可以附加行,从第一列开始附加

ws.append([1, 2, 3])

# Python 类型会被自动转换

import datetime

ws['A3'] = datetime.datetime.now().strftime("%Y-%m-%d")

# 保存文件

wb.save("sample.xlsx")

写入例子二

#!/usr/bin/env python

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

"""

http://openpyxl.readthedocs.io/en/default/usage.html

"""

# workbook相关

from openpyxl import Workbook

from openpyxl.compat import range

from openpyxl.utils import get_column_letter

wb = Workbook()

dest_filename = 'empty_book.xlsx'

ws1 = wb.active

ws1.title = "range names"

for row in range(1, 40):

ws1.append(range(600))

ws2 = wb.create_sheet(title="Pi")

ws2['F5'] = 3.14

ws3 = wb.create_sheet(title="Data")

for row in range(10, 20):

for col in range(27, 54):

_ = ws3.cell(column=col, row=row, value="{0}".format(get_column_letter(col)))

print(ws3['AA10'].value)

wb.save(filename=dest_filename)

读取例子一

#!/usr/bin/env python

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

from openpyxl.reader.excel import load_workbook

import json

# 读取excel2007文件

wb = load_workbook(filename=r'test_book.xlsx')

# 显示有多少张表

print "Worksheet range(s):", wb.get_named_ranges()

print "Worksheet name(s):", wb.get_sheet_names()

# 取第一张表

sheetnames = wb.get_sheet_names()

ws = wb.get_sheet_by_name(sheetnames[0])

# 显示表名,表行数,表列数

print "Work Sheet Titile:", ws.title

print "Work Sheet Rows:", ws.max_row

print "Work Sheet Cols:", ws.max_column

# 建立存储数据的字典

data_dic = {}

# 把数据存到字典中

for rx in range(1, ws.max_row + 1):

temp_list = []

pid = rx

w1 = ws.cell(row=rx, column=1).value

w2 = ws.cell(row=rx, column=2).value

w3 = ws.cell(row=rx, column=3).value

w4 = ws.cell(row=rx, column=4).value

temp_list = [w1, w2, w3, w4]

data_dic[pid] = temp_list

# 打印字典数据个数

print 'Total:%d' % len(data_dic)

print json.dumps(data_dic, encoding="UTF-8", ensure_ascii=False)

读取结果:

Worksheet range(s): []

Worksheet name(s): [u'\u6d3b\u52a8\u8868', u'\u7528\u6237\u4fe1\u606f', u'Sheet3']

Work Sheet Titile: 活动表

Work Sheet Rows: 3

Work Sheet Cols: 5

Total:3

{"1": ["张三", 18, "男", "广州"], "2": ["李四", 20, "女", "湖北"], "3": ["王五", 25, "女", "北京"]}

使用公式

>>> from openpyxl import Workbook

>>> wb = Workbook()

>>> ws = wb.active

>>> # add a simple formula

>>> ws["A1"] = "=SUM(1, 1)"

>>> wb.save("formula.xlsx")

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值