Utilice xlwings para automatizar el funcionamiento de las tablas de Excel

Utilice xlwings para automatizar el funcionamiento de las tablas de Excel

import xlwings as xw
import numpy as np
import pandas as pd
#详细内容参考网站 https://docs.xlwings.org/en/stable/course.html

"""1.建立表格连接对象"""
#新建工作簿
app = xw.App(visible=True,add_book=False)#visible=True可以看到新建的工作簿,add_book=True再新建一个表格
wb = app.books.add()  #新建工作簿
wb.activate()   #激活为当前工作簿
wb.save('xlwings实验表.xlsx')  #保存工作簿为指定名字
wb.close()  #关闭工作簿,但是显示的文件并不会关闭
app.quit()  #退出应用---显示的文件也关闭

#利用已经有的工作簿
wb=xw.Book('xlwings实验表.xlsx')#将目标excel表格与wb相连接
sheet = wb.sheets[0]#将表格中的sheet1建立连接
sheet=wb.sheets['sheet1']

#sheet_2=wb.sheets['sheet2']

"""2.查看表格基本信息"""
wb.fullname#查看目标excel表格所在路径
wb.name#工作簿名称
sheet.name#查看工作表名称

"""3.对表格基本操作"""

#引用指定坐标单元格:通过三种方式引用单元格A1
A1=sheet.range('A1')
A1=sheet[0,0]
A1=xw.Range('A1')

A1_C1=sheet.range('a1:c10')#引用区域
A1_C1.count  #返回区域中单元格的格数
A1_C1.row  # 返回区域的第一行行标
A1_C1.last_cell  #获得区域中右下角最后一个单元格
A1_C1.width#获得区域的宽度
A1_C1.address   #取得区域的绝对地址
A1_C1.shape#返回区域的行数和列数

#在表格中写入数据
sheet.range('A1').value='第一个数据'#在单元格A1中实时写入数据
sheet.range('A1').add_hyperlink(r'www.baidu.com','百度','提示:点击即链接到百度')  # 指定单元格加入超链接
sheet.range('A1').value#打印表格中A1位置的数据
sheet.range('A1').clear_contents()  # 清除该单元格内容
sheet.range('A1').clear()#将表格A1位置的数据和格式实时清除
sheet.clear()#将工作表中的内容清空
sheet.range('A1').column#返回单元格列表
sheet.range('A1').row#返回单元格行表


sheet.range('A1').get_address(row_absolute=True, column_absolute=True,include_sheetname=False, external=False)  # 获得单元格的绝对地址
sheet.range('A1').row_height#获取单元格的行高
sheet.range('A1').row_height=19#修改单元格的行高
sheet.range('A1').column_width#获取单元格的列宽
sheet.range('A1').column_width=19#修改单元格的列宽

sheet.range('A1').columns.autofit()#单元格列宽自动适应
sheet.range('A1').rows.autofit()#单元格列宽自动适应

sheet.range('A1').color=(32,14,214)#给单元格增加颜色
sheet.range('A1').color#获取单元格的颜色
sheet.range('A1').color=None#清空单元格颜色

sheet.range('A1')

#通过循环填充单元格B1:B50
for i in range(1,51):
    sheet.range('B'+str(i)).value=i*2
sheet.range('A1').formula='=SUM(B1:B50)'#通过输入excel公式计算单元格之和
sheet.range('A1').formula_array#查看单元格A1位置的公式

sheet.range('D4').value=np.random.rand(16,7)#从起始位置单元格输入数据
xw.Range('E21').value=34#直接从工作簿写入数据,默认写入第一个工作表

data_np=sheet.range('D4').expand().value#从起始位置单元格批量读取数据
data_pd=sheet.range('D4').options(pd.DataFrame,expand='table').value#将数据读取为数据框

"""3.将matplotlib的图表写入excel"""
import matplotlib.pyplot as plt
data=np.random.rand(30)
fig=plt.figure(figsize=(10,8))
plt.plot(data)
#add(image, link_to_file=False, save_with_document=True, left=0, top=0, width=None, height=None, name=None, update=False)
sheet.pictures.add(fig,name='图片',update=True,left=40,top=30,width=40,height=40)#在表格的指定位置插入指定大小的图片

Supongo que te gusta

Origin blog.csdn.net/weixin_45590329/article/details/106907895
Recomendado
Clasificación