想到和excel文件做交互,第一个想到的就是pandas。python的pandas模块可以很方便的读取excel文件。但是在保存excel的时候有很多限制:
例如把一个表格拆分成5个保存到其中2个到一个已经有sheet工作表而且有数据的excel文件中的不同sheet中。使用pandas做不到,它只能操作xlsx文件这个级别而不能细化到sheet级别,而且它会抹去原有excel原有所有数据。
为了解决这个问题,所以我自己编写了一个tables_to_sheets的装饰器,主要功能如下:
1.xlsx文件不存在,则创建文件;
2.sheet不存在,则创建sheet;
3.使用函数直接操作sheet。
@tables_to_sheets(locate=r"G:\my_new.xlsx", sheetname="bb")
def tt(app, wb, sht):
sht.range('c20').options(transpose=True).value = ["hfd", "11", "er", "24", "op", "asjk"]
tt()
4.介绍简单的xlwings语法:
# # sht.range('A1').options(transpose=True).value=list(range(1,18))
#上述语法是将列表竖着插入到表格,表格从a1开始
# # sht.range('A1').value=['name','sex','customer','wag']
#上述语句是将列表横着插入表格,也是从a1开始
# # sht.range('e1').options(transpose=True).value=[random.randint(300,1090) for i in range(50)]
# 上述语句是随机创建50个值(300,1090)并插入表格。表格从e1开始
## sht.range('d2').value='yy'
#上述语句是将d2格的值变成‘yy’
# # rng=sht.range('a1').current_region
# # rng.autofit()
# 选定表格中连续表格并调整大小
发现以前写的代码非常渣。现在用装饰器重写了一遍。为了方便,github地址不变!
如果疑问或者意见,请留言或者联系本人rwangnqian@126.com
模块代码:https://github.com/rwangnqian/myexcel/blob/master/modify_excel_py3.py