这篇文章主要讲解了“python读取Excel中的数据以及将输入写入Excel的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python读取Excel中的数据以及将输入写入Excel的方法”吧!
有时我们需要向含有VBA代码的Excel写入数据,但又不能影响正常的VBA代码执行,起初我使用python的openpyxl模块中函数将数据写入xlsm文件中,写入数据后发现执行VBA代码的按钮消失不见了,于是通过查找原因发现是由于openpyxl对VBA支持并不友好,而对VBA支持友好是xlwings模块。
读取需注意点:
默认情况下,带有数字的单元格被读取为float,带有日期单元格被读取为datetime.datetime,空单元格转化为None;数据读取可以通过option操作指定格式读取。
import xlwings as xw
import os
#创建APP应用
app=xw.App(visible=True,add_book=False) #visible表示程序运行时是否可见Excel,True表示可见,False表示不可见;add_book表示是否要新建工作簿
file = "数据写入V1.xlsm"
wb=app.books.open(file) #打开指定文件
ws = wb.sheets["Sheet1"] #工作表引用
#ws.activate()
temp_value = ws["B2"].value #默认读取B2的值,为浮点型
print(type(temp_value))
print(temp_value)
temp_n = ws["B3"].value #默认读取B3的值,这里未空值默认应显示None
print(type(temp_n))
print(temp_n)
temp_value1 = ws["B2"].options(numbers=int).value #将B2的设置为整数
print(type(temp_value1))
print(temp_value1)
#运行结果
<class 'float'>
100.0
<class 'NoneType'>
None
<class 'int'>
100
>>>
import xlwings as xw
import os
app=xw.App(visible=True,add_book=False)
file = "数据写入V1.xlsm"
wb=app.books.open(file) #打开指定文件
ws = wb.sheets["Sheet1"]
print(ws.range('B2').value) #另一种方式读取B2的值
#运行结果
100.0
import xlwings as xw
import os
#创建APP应用
app=xw.App(visible=True,add_book=False)
file = "数据写入V1.xlsm"
wb=app.books.open(file) #打开指定文件
#工作表引用
ws = wb.sheets["Sheet1"]
a = 6799
b = 2345
c = 1000
info = ws.used_range
#print(info)
nrows = info.last_cell.row #获取sheet表中最大行
print(nrows)
if ws['B'+str(nrows)]==None:
ws['B'+str(int(nrows)-1)].value=a
ws['C'+str(int(nrows)-1)].value=b
ws['D'+str(int(nrows)-1)].value=c
else:
ws['B'+str(int(nrows)+1)].value=a
ws['C'+str(int(nrows)+1)].value=b
ws['D'+str(int(nrows)+1)].value=c
wb.save() #保存数据
wb.close() #关闭工作簿
app.quit()
写入后
感谢各位的阅读,以上就是“python读取Excel中的数据以及将输入写入Excel的方法”的内容了,经过本文的学习后,相信大家对python读取Excel中的数据以及将输入写入Excel的方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。