xlwings处理Excel笔记

news/2024/11/23 23:48:02/

导入的库

import xlwings as xw
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

新建或打开Excel

#创建一个excel并保存
wb = xw.Book()
sht=wb.sheets['Sheet1']
wb.save(r'D:\test1.xlsx')#也可以直接打开已有的Excel
wb = xw.Book(r'D:\test1.xlsx')#方法2:
app=xw.App(visible=True,add_book=False)
app.display_alerts=False  #不显示Excel消息框
app.screen_updateing=False #关闭屏幕更新,可加快宏的执行速度
wb=app.books.open(r'D:\test.xlsx')
print(wb.fullname) #输出Excel绝对路径D:\test.xlsx#最后关闭工作簿
wb.close()
app.quit()  # 退出excel程序,
# app.kill() 通过杀掉进程强制Excel app退出

Excel单元格操作

#单元格赋值
sht.range('A1').value='2'
sht.range('C3').api.NumberFormat = "0.00"     # 设置单元格的数字格式。此时A1显示2.00
#二维数组赋值
sht.range('A1').value=[['a','b','c'],[1,2,3]]#sht.range('A1:B3').value将以一维数组的方式显示值
#用二维数组显示列值
sht.range('A1:B3').options(ndim=2).value#显示整个table,可用以下两种方法
rng1 = sht.range('A1').expand('table').value
rng2 =sht.range('A1').options(expand='table').value#清空从A1开始扩展出的table值
sht.range('A1').expand('table').clear()#numpy数组的方式赋值
sht.range('A1').value = np.eye(3) #3*3单位矩阵
sht.range('A1').options(np.array, expand='table').value#dataframe赋值
df=pd.DataFrame([[1,2],[3,4]],columns=['A','B'])
#取消index和columns
sht.range('A9').options(index=False,header=False).value=df#插入pyplot绘制的图表
fig=plt.figure()
plt.plot([1,2,3])
sht.pictures.add(fig,name='MyPlot',update=True,left=sht.range('D1').left,top=sht.range('D1').top)
#update=True可以在Excel上调整大小并定位图:后续调用同名的pictures.add()('MyPlot')会更新图片而不改变它的位置或大小。#设置所获取日期的单元格值的格式
my_date_handler = lambda year, month, day, **kwargs: "%04i-%02i-%02i" % (year, month, day)
sht.range('A1').options(dates=my_date_handler).value  #单元格值为2021/4/9,得到值为'2021-04-09'#获取整个sheet的行列
nrow1=sht.api.UsedRange.Rows.count
ncol1=sht.api.UsedRange.Columns.count#获取指定区域的最后一行和最后一列
rng=sht.range('A9').expand()
nrow2=rng.last_cell.row
ncol2=rng.last_cell.column#获取单元格行列
print(sht.range('B3').row)  #3
print(sht.range('B3').column)   #2#清除工作表的所有内容(除图片)但保留原有格式
sht.clear_contents()

单元格格式操作

sht.range('A1').row_height=30  #设置单元格高度
sht.range('A1').column_width=25  #设置单元格宽度sht.range('A1').color=(250,210,38) #设置单元格颜色
sht.range('A1').color=None #清除颜色 sht.range('D2').formula='=sum(A2,B2)'#使用公式
print(sht.range('D2').formula_array) #获取单元格公式#设置单元格字体、字号、粗体、字体颜色
sht.range('B2').value = '销售数据报表'
sht.range('B2').api.Font.name='黑体'
sht.range('B2').api.Font.Size=48
sht.range('B2').api.Font.Bold=True
sht.range('B2').api.Font.Color=0X0000FF #修改字体颜色为红色
sht.range('B2').column_width = 60"""设置单元格的对齐方式"""
sht.range('B2').api.HorizontalAlignment = -4108    # -4108 水平居中。 -4131 靠左,-4152 靠右。
sht.range('B2').api.VerticalAlignment = -4130      # -4108 垂直居中(默认)。 -4160 靠上,-4107 靠下, -4130 自动换行对齐。"""设置单元格的外边框"""
#设置单元格底部框Borders(9),LineStyle=1为直线,Weight=2边框粗细
sht.range('B2').api.Borders(9).LineStyle=1
sht.range('B2').api.Borders(9).Weight=2
#Borders(7)左边框,虚线
sht.range('B2').api.Borders(7).LineStyle=2
sht.range('B2').api.Borders(7).Weight=2
#Borders(8)顶部框,双点划线
sht.range('B2').api.Borders(8).LineStyle=5
sht.range('B2').api.Borders(8).Weight=2
#Borders(10)右边框,点划线
sht.range('B2').api.Borders(10).LineStyle=4
sht.range('B2').api.Borders(10).Weight=2#单元格内Borders(5)从左上角到右下角斜线
sht.range('A2').api.Borders(5).LineStyle=1
sht.range('A2').api.Borders(5).Weight=2
#单元格内Borders(6)从左下角到右上角斜线
sht.range('C2').api.Borders(6).LineStyle=1
sht.range('C2').api.Borders(6).Weight=2"""设置单元格区域的内边框"""
#Borders(11)区域内部垂直边线
sht.range('A3:C5').api.Borders(11).LineStyle=1
sht.range('A3:C5').api.Borders(11).Weight=2
#Borders(12)区域内部水平边线
sht.range('A3:C5').api.Borders(12).LineStyle=1
sht.range('A3:C5').api.Borders(12).Weight=2# 合并单元格 B3 到 C3,注意excel不能最小化,否则会报错
sht.range('B3:C3').api.merge()      
sht.range('B3:C3').api.unmerge()    # 拆分单元格

http://www.ppmy.cn/news/779725.html

相关文章

(小白)Excel学习笔记

Excel学习笔记 欢迎阅读我的Excel学习笔记我的第一篇博客入门表格设计&自动加总函数 欢迎阅读我的Excel学习笔记 最近闲来无事,在b站上看见一个up主的Excel教学视频(本来是在YouTube上发布的),看了几节,感觉很nice,学习之后怕…

excel 错位插入_excel表格错位怎么解决?excel数据错位

excel表格内突然出现错位怎么办 方法步骤: 1.打开--页面--页边距--窄。 2.缩小后我们发现有一个已经超出虚线一格,(只有虚线内的在第一页)。 3.选中你要调整的行,点开始--格式--行高,设置合适的行高尺寸。 4.宽度我们可以把鼠标放…

王佩丰 Excel 基础24讲 | 学习笔记(全)

第一讲:认识Excel 1.简介 excel能做什么? 数据存储 → 数据处理 → 数据分析 → 数据呈现 excel界面 补充:Excel数据分析步骤 ①提出问题:明确自己需要通过数据分析解决什么问题 ②理解数据:理解数据各个字段的含义…

C#NPOI导出Excel详解

C#NPOI导出Excel详解 开发工具与技术:工具:Visual Studio/C#.Net,技术:C# 作者:刘胜 撰写时间:2019-05-08 NPOI简介 NOP是一个开源的C#读写Excel、WORD等微软OLE2组件的项目,使用NPOI你就可以在没有安装Of…

excel提取文字拼音首字母

目标是提取一段文案的拼音首字母,参考https://jingyan.baidu.com/article/0a52e3f43c3f6abf63ed7259.html 备注:在每一个需要这个函数的excel中添加模块,才可以生效 -- 百度经验原文--- 在工作中,为了方便查询、排序或者编码&am…

Python3读取和写入excel表格数据

目录 一、python读取excel表格数据 1、读取excel表格数据常用操作 2、xlrd模块的主要操作 3、读取单元格内容为日期时间的方式 4、 读取合并单元格的数据 二、python写入excel表格数据 1、写入excel表格数据常用操作和格式设置 2、字体颜色和背景颜色对应索引号 python…

excel根据数据得出公式

1 在excel中输入数据源 示例: 日期算力每日奖励单T奖励2020-10-15 00:00:00.000000 08:00583899.563144244.9990.247037352020-10-16 00:00:00.000000 08:00596284.063148939.570.249779562020-10-17 00:00:00.000000 08:00603948.156152811.810.25302142020-10-1…

【Excel学习】Excel 制作2个维度的折线图

原数据这样: 要做成的报表 步骤 选中所有数据插入数据透视图【右键】更改图表类型,改为折线图字段列表 按照如下布置即可