https://blog.csdn.net/qq_34617032/article/details/80433939
针对处理Excel的各种三方库xlrd, xlwt, xlutils, xlwings, openpyxl, xlsxwriter, win32com, DataNitro, pandas,较为全面的介绍
基础教程: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程序