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


(相关资料图)

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

import xlwings as xwwb = 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 xwwb = xw.Book(r"F:\xlwings\OriginalData.xlsx")sht = wb.sheets[0]info = sht.used_rangenrows = 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,DataFramewb = app.books.add()sht_All = wb.sheets[0]info = sht_All.used_rangenrows = info.last_cell.rowdef GetDataFrame(Sheets,N,M):index1 = Sheets.range((1,1),(1,15)).valueindex2 = Series(index1)Data = Sheets.range((2,1),(N,M)).valueData = pd.DataFrame(Data,columns=index2)return Datam = GetDataFrame(sht_All,nrows,15)

4.保存与另存为

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

另存为的方法如下:

import xlwings as xwwb = 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 xwwb = 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)#垂直靠下#-4107wb.save()xw.App().quit()

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

38条 上一页 1 2 3 4 下一页

推荐内容