飞道的博客

办公自动化 -- openpyxl功能

379人阅读  评论(0)

openpyxl的基础使用

from openpyxl import Workbook


## openpyxl基本使用
wb = Workbook()
ws1 = wb.active
ws1.title = 'range names'   #设置工作表标题
li_v = [['name','age','gender'],['bob',18,'male'],['tom',23,'female']]  #列出单元格内需要写入的内容
for li in li_v:
    ws1.append(li)  #遍历li_v,并将内容添加到单元格内
ws2 = wb.create_sheet(title='Pi')    #创建工作表
ws2['F4'] = 3.14    #在F4单元格写入数据
ws3 = wb.create_sheet(title='data')  #创建工作表并设置标题


#设置每一列为相同字母
from openpyxl.utils import get_column_letter


for row in range(1,10):
    for col in range(1,10):
        c = ws3.cell(row=row,column=col,value='{}'.format(get_column_letter(col)))
dest_filename = 'empty_book.xlsx'   #文件夹名
wb.save(dest_filename)  #保存内容

使用数据格式(日期写入)

## 使用数据格式(日期写入)

from openpyxl import Workbook

wb = Workbook
ws = wb.active
import datetime
ws['A1'] = datetime.datetime(2020,2,19)     #在A1单元格写入日期数据
print(ws['A1'].value)   #读取A1单元格的值
# %yyyy --→ 年   %mm --→ 年    %dd --→ 日   2020-02-19
ws['A1'].numbver_format = 'yyyy-mm-dd h:mm:ss'
## 插入公式
ws['A2'] = '=SUM(1,1)'  #使用公式在excel表格中显示求和
print(ws['A2'].value)
ws.save('formula.xlsx')

取消与合并单元格

from openpyxl import Workbook

wb = Workbook()
ws = wb.active
ws.merge_cells('A1:C1')     #合并单元格
ws.unmerge_cells('A1:C1')   #取消合并单元格
ws.merged_cells(start_row=1,end_row=1,start_column=1,end_column=3)
#               开始行      结束行     开始列         结束列
wb.save('merge.xlsx')

插入图像

from openpyxl import Workbook

wb = Workbook()
ws = wb.active
ws['A1'] = 'see it'

from openpyxl.drawing.image import Image

img = Image('mao.jpg')  #图片地址
ws.add_image(img,'A1')  #将图片传入A1单元格
wb.save('image.xlsx')

折叠行或列

## 折叠行或列

from openpyxl import Workbook

wb = Workbook()
ws = wb.active        #     开始列  结束列
ws.column_dimensions.group('A','D',hidden=True)     #设置折叠列  hidden默认为False,表示不折叠
ws.row_dimensions.group(1,10,hidden=True)   #设置行折叠
ws.save('fold.xlsx')

插入行与列

## 插入行与列

from openpyxl import Workbook

wb = Workbook()
ws = wb.active
li_v = [['姓名','班级','性别'],['小明','1班','男']]
for li in li_v:
    ws.append('li')
ws.insert_rows(1)   #在第一列之前插入一行
ws.merge_cells(1)   #在第一列之前插入一列
ws.merge_cells('B1:D1')     #合并'B1:D1'
ws['B1'] = '班级信息'
wb.save('insert_01.xlsx')

单元格范围移动

## 单元格范围移动
ws.more_range('B3:D3',rows=2,cols=2,translate=True)
#               向上左移动   负值     向下右移动   正值

删除插入行与列

from openpyxl import load_workbook

wb = load_workbook(filename='insert_01.xlsx',read_only=False)
wb.sheetnames
sheet = wb['sheet']
sheet.delete_cols(1)    #删除第一列
wb.save('inset_01.xlsx')

转载:https://blog.csdn.net/m0_54634272/article/details/115436812
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场