openpyxl学习笔记(2020-08-09)——打开文件/简单写入/折叠隐藏

打开已存在文件及简单写入

昨天学了如何简单地使用openpyxl新建xlsx文件及创建/操作sheet。

先简单学习一下如何打开已存在xlsx文件

主要就是使用了load_workbook

from openpyxl import load_workbook

wb2 = load_workbook('existed.xlsx')
print(wb2.sheetnames)

在workbook中写入

from openpyxl import Workbook
from openpyxl.utils import get_column_letter

wb = Workbook()

dest_filename = 'emptybook.xlsx'  # 给新建的xlsx文件命名,在最后保存时指定给filename

ws1 = wb.active  # 直接使用默认的sheet
ws1.title = 'range name'

for row in range(1, 40):
	ws1.append(range(500))
# 遍历给1-39行分别写入500列数字

ws2 = wb.create_sheet(title='Pi')  # 自定义一个sheet并命名

ws2['F5'] = 3.14  # 给单元格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)))
	# 给指定单元格写入所在列的字母,即通过get_column_letter获取col的字母信息

wb.save(filename = dest_filename)

折叠隐藏

import openpyxl

wb = openpyxl.Workbook()
ws = wb.create_sheet()  # 如不指定sheet名,默认从sheet1开始

ws.column_dimensions.group('A', 'D', hidden=True)  # 折叠列A-D
ws.row_dimensions.group(1, 10, hidden=True)  # 折叠行1-10

wb.save('fold.xlsx')

插入图片

from openpyxl import Workbook
from openpyxl.drawing.image import Image

wb = Workbook()
ws = wb.active

ws['A1'] = 'SEE THE IMAGE BELOW'

img = Image('图片路径')

ws.add_image(img, 'A5')  # 将图片放置在A5单元格上

wb.save('insert image.xlsx')

合并单元格/取消合并

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

ws.merge_cells('A2:D2')  # 合并
ws.unmerge_cells('A2:D2')  # 取消合并

# 或者使用另一种方法
ws.merge_cells(start_row=2, start_column=1, end_row=4, end_column=4)  # 合并

ws.merge_cells(start_row=6, start_column=7, end_row=8, end_column=9)  # 合并
ws.unmerge_cells(start_row=6, start_column=7, end_row=8, end_column=9)  #取消合并

wb.save('merge unmerge.xlsx')

注意:取消合并要和合并的单元格范围相同,如果要缩小或扩大范围需要先取消再合并

使用公式

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

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

wb.save('formulae.xlsx')

查看公式是否存在

from openpyxl.utils import FORMULAE

print('HEX2DEC' in FORMULAE)

只读与只写

from openpyxl import load_workbook

wb = load_workbook('formulae.xlsx', read_only=True)
ws = wb['sheet']  # read_only模式下,需要指定已存在的sheet名

print(ws.['A1'].value)
from openpyxl import Workbook

wb = Workbook(write_only=True)
ws = wb.create_sheet()

for row in range(19):
	ws.append(['%d' % i for i in range(45)])
# 还可以设定写入内容的styles及comments
from openpyxl.cell import WriteOnlyCell
from openpyxl.comments import Comment
from openpyxl.styles import Font

cell_style = WriteOnlyCell(ws, value='hello')
cell_style.font = Font(name='Courier', size=36)
cell_style.comment = Comment(text='A comment', author="Authors' names")

ws.append([cell_style, 3.14, None])  # 这里是在上面内容后一行写入三个值:hello,3.14和None, 其中None即为空单元格

wb.save('read or write only.xlsx')

插入行列/删除行列

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

ws.insert_rows(3)  # 默认插入一行或一列
ws.insert_cols(3)

ws.delete_rows(4)  # 默认删除一行或一列
ws.delete_cols(4)

ws.move_range('D3') # 删除一个单元格
ws.move_range('D3', translate=True)  # 连同单元格里的公式也删除

# 因为是新建文件,没有数据,所以在这里并没有什么用

不积跬步,无以至千里,不积小流,无以致江海

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ALittleHigh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值