xlwings处理和修改Excel已有表格数据(附xlwings空值解决思路)

https://blog.csdn.net/qq_34617032/article/details/80433939

针对处理Excel的各种三方库xlrd, xlwt, xlutils, xlwings, openpyxl, xlsxwriter, win32com, DataNitro, pandas,较为全面的介绍

 

Xlwings

基础教程:https://www.cnblogs.com/catgatp/p/7875696.html

缺陷:无法识别一行/一列中的空值,遇到空值默认读取终止,使用for函数也无法解决

写入函数是否也存在这类问题??

解决方法:

#思路1(最方便快捷),使用其他可识别字符填补空值,代码运行结束再全部替换为空值(替换需要以单元格为单位,勾选单元格匹配:完全匹配单元格内才可以替换)
#思路2.使用xlrd和xlwt输出list,再用xlwings写入;效率较低
#思路3,查看xlwings源码包,sheet.range.value函数的结束函数代码(源码如何设置结束条件?空值break?),修改源码。处理:未找到相关代码

注意:

区分 mail = sheet.range('A2').expand('down').value 和 mail = sheet. range('A1').expand('down')

 

xlwings写入一列

二维数组:

list = [[1],[2],[3],[4]]

sheet.range('A1').value = list

一维数组:

list = [1,2,3,4]

sheet.range('A1').options(transpose=True).value = list

 

应用:使用xlwings读取excel中某列的值
 

import xlwings as xw

Excel = xw.App(visible=True,add_book=False)
Excel.display_alerts=False
Excel.screen_updating=False
#开始Excel程序,定义打开文档格式

filepath=r'C:\Users'
ExcelFile = Excel.books.open(filepath)
sheet = ExcelFile.sheets['Sheet1']
#读取具体文档,表格

mail = sheet.range('A2').expand(‘down’).value
#读取某列数据

extract_qq = []
    

sheet.range('A1').options(transpose=True).value = extract_qq
#写入表格,列表使用transpose将自动填成一列

ExcelFile.save() #保存文档
ExcelFile.close() #关闭文档
Excel.quit() #停止excel程序

 

你可能感兴趣的:(Python,Python,xlwings)