打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
xlwings|5个实例带你实现python与excel交互
userphoto

2023.06.05 山东

关注

年前学习xlwings时断断续续产出的存货,现在整理出来分享给需要的小伙伴们。

1 .新建保存重命名表、插入删除行列、复制行列,批量写入数据

import xlwings as xw wb = xw.Book()#新建一个工作表sht = wb.sheets[0]#shee1sheet_name = 'NEWSHEET'sht.name = sheet_name#更改第一个sheet名字col_a = [1,2,3,4,5,6,7]sht.range('A1:A7').options(transpose=True).value = col_a#整列赋值sht.api.Columns(1).Insert()#在第一列前插入一列sht.api.Rows(1).Insert()#在第一行前插入一行sht.range('A3:A4').api.EntireRow.Delete()#删除3,4行sht.api.Columns(2).Copy(sht.api.Columns(1))#复制第二列到第一列,可以带格式复制sht.range('B1').api.EntireColumn.Delete()#删除第二列B列wb.save(r'F:\PythonData\xlwings\NewData.xlsx')xw.App().quit()#退出整个excel,不写的话打开excel会显示被其他人使用

2 .获取有数据的所有行数和列数

used_rangeUsed Range of Sheet.
Returns: Return type: xw.Range
last_cellReturns the bottom right cell of the specified range. Read-only.
Returns: Return type: Range
import xlwings as xw
wb = xw.Book(r'F:\xlwings\OriginalData.xlsx')
sht = wb.sheets[0]
info = sht.used_range
nrows = info.last_cell.rowprint(nrows)
ncolumns = info.last_cell.columnprint(ncolumns)

3 .读取一整个sheet到pandas.DataFrame

import xlwings as xwimport pandas as pdfrom pandas import Series,DataFrame
wb = app.books.add()sht_All = wb.sheets[0]
info = sht_All.used_rangenrows = info.last_cell.row
def GetDataFrame(Sheets,N,M): index1 = Sheets.range((1,1),(1,15)).value index2 = Series(index1) Data = Sheets.range((2,1),(N,M)).value Data = pd.DataFrame(Data,columns=index2) return Datam = GetDataFrame(sht_All,nrows,15)

4 .保存与另存为

使用xlwings处理excel有时会需要在原表格上进行更改,当然可以选择提取数据再进行相关操作,也可以操作之后另存为。

另存为的方法如下:

import xlwings as xw wb = xw.Book(r'F:\xlwings\OriginalData.xlsx')#orwb1 = xw.books.open(r'F:\xlwings\OriginalData01.xlsx')#打开文件
wb.save()#保存原文件wb1.save(r'F:\xlwings\PresentData01.xlsx')#另存为PresentData01.xlsx

5 .调用api:设置excel对齐方式,框线,背景颜色,字体加粗等

我们先在excel把自己想要的格式设置出来:

'One’:加粗,左对齐靠下

'Two’:倾斜,居中靠下

'Three’:下划线,左对齐靠上

'Four’:左对齐居中

'Five’:右对齐靠下

全框线,粉色

import xlwings as xw
wb = xw.Book(r'F:\PythonData\xlwings\Style.xlsx')
sht = wb.sheets[0]
sht_color = sht.range((1,1)).colorprint(sht_color)#(255, 153, 255)sht.range((3,1)).color = (255, 153, 255)#A3背景颜色为粉色sht_BoldA = sht.range((1,1)).api.Font.Boldprint(sht_BoldA)#Truesht_BoldB = sht.range((1,2)).api.Font.Boldprint(sht_BoldB)#Falsesht.range((3,1)).value = 'A3'sht.range((3,1)).api.Font.Bold = True#加粗sht_Fontstyle = sht.range((1,2)).api.Font.FontStyleprint(sht_Fontstyle)#倾斜sht.range((3,2)).value = 'B3'sht.range((3,2)).api.Font.FontStyle = "倾斜"#设置为斜体sht_Underline = sht.range((1,3)).api.Font.Underlineprint(sht_Underline)#2,为下划线sht.range((3,3)).value = 'C3'sht.range((3,3)).api.Font.Underline = 2#设置下划线sht_style = sht.range((1,1),(1,5)).api.Borders.LineStyleprint(sht_style)#1#全框线sht.range((3,1),(3,3)).api.Borders.LineStyle = 1#设置全框线sht_HA_A1 = sht.range((1,1)).api.HorizontalAlignmentprint(sht_HA_A1)#水平左对齐#1sht_HA_A2 = sht.range((1,2)).api.HorizontalAlignmentprint(sht_HA_A2)#水平居中#-4108sht_HA_A5 = sht.range((1,5)).api.HorizontalAlignmentprint(sht_HA_A5)#水平右对齐#-4152sht_VA_A3 = sht.range((1,3)).api.VerticalAlignmentprint(sht_VA_A3)#垂直靠上#-4160sht_VA_A4 = sht.range((1,4)).api.VerticalAlignmentprint(sht_VA_A4)#垂直居中#-4108sht_VA_A5 = sht.range((1,5)).api.VerticalAlignmentprint(sht_VA_A5)#垂直靠下#-4107
wb.save()xw.App().quit()

如果有任何问题,欢迎留言。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
插上翅膀,让Excel飞起来——xlwings(一)
零基础学习xlwings,看这篇文章就够了
运营学Python|Python&Excel联动(上)
Python xlwings模块简单使用
Python最好的Excel第三方库
详解python的xlwings库读写excel操作总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服