欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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