xlwings使用小结
程序员文章站
2022-03-11 11:48:54
...
1.读写性能
def read_excel():
app = xlws.App(visible=False, add_book=False)
#设置display_alerts,screen_updating为false 加速读写,时间可以节省50%
app.display_alerts = False
app.screen_updating = False # excel 是否展示内容
start_time = time.time()
wb = app.books.open("test.xlsx")
# 进入第一张工作表
sheet = wb.sheets[0]
......
spendtime = time.time() - start_time
print("spend time is :"+ str(spendtime))
#wb.save() # 处理后保存
wb.close() # 关闭文件句柄,写入文件
app.quit() # 关闭app
2. 批量读写数据
读取整个表格 其他方法 sht.range(‘a1’).options(expand=‘table’).value (expand=‘table/right/down…’)
#这里的A1是起始点,可以设置
table = sheet.range('A1').expand('table').value
#len(table) #行数 len(table[0]) #列数
#读取一列
items = sheet.range('B2').expand('down').value #使用批量读取,比单个读取时间可以节省50%以上
写
#使用同时读写可以节省 80%以上的时间 ,以1000个数据为例
#sheet.range('B2').options(transpose=True).value=items
#当把列表赋值给Excel Range时,制定左上方的单元格位置就足够了。
sheet.range('A1').expand('table').value = table
4. 获取字体和颜色
f
ont_name = sheet.range('A1').api.Font.Name # 获取字体名称
font_size = sheet.range('A1').api.Font.Size # 获取字体大小
bold = sheet.range('A1').api.Font.Bold # 获取是否加粗,True--加粗,False--未加粗
color = sheet.range('A1').api.Font.Color # 获取字体颜色
设置
sheet.range('A1').api.Font.Name = 'Times New Roman' # 设置字体为Times New Roman
sheet.range('A1').api.Font.Size = 15 # 设置字号为15
sheet.range('A1').api.Font.Bold = True # 加粗
sheet.range('A1').api.Font.Color = 0x0000ff # 设置为红色RGB(255,0,0)
rng=sheet.range('A1')
#获取rng.color
#设置rng.color=(255,255,255)
3.排序
# 以下是根据G列排序,我的表头是在第二行,所以是G2
# Order1说明:1代表升序,2代表降序
sheet.range(‘G2’).api.Sort(Key1=sheet.range(‘G2’).api, Order1=2)
4. 获取sheet的最大行数/列数 这里取的最大,中间可能还有空行等
info = sheet.used_range
nrows = info.last_cell.row
ncols = info.last_cell.column
print("行数="+str(nrows))
print("列数="+str(ncols))
这里读取的行数/列数与第二部分可能不一致, 第二部分的批量读写遇到空行或者空列就停止了
*5. excel 可以获取的数据类型
value_type = type(item)
float:, str,datetime, None, NoneType:
上一篇: python xlwings 实践应用