利用xlwings自动化操作Excel表格

利用xlwings自动化操作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)#在表格的指定位置插入指定大小的图片

你可能感兴趣的:(python常用操作)