xlwings使用小结

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:

你可能感兴趣的:(xlwings使用小结)