添加数据
1.导入xlrd,xlwt工具
import xlrd,xlwt
2.从xlutils库中找到copy文件,从文件中调用copy模块
from xlutils import copy
3.打开excel表格
book = xlrd.open_workbook("e://book.xls")
4.复制后副本中的sheet就没有nrows和ncols的属性了,所以我们用下面这种方法来获取行数和列数:
#获取原表(book表)的sheet1表的总行数
r = book.sheet_by_name("sheet1").nrows
#获取原表(book表)的sheet1表的总列数
c = book.sheet_by_name("sheet1").ncols
注:也可以将name改成index通过下角标获取sheet1表。
5.做一个副本,复制一份book表
book_copy = copy.copy(book)
6.从复制后的book表中获取sheet1表,赋值给sheet
sheet = book_copy.get_sheet(0)
7.如果想添加已知数据,就定义一个数据a,把这条数据插入到最后一行。
#总体数据的总行数即为最后一行的下标
a = ["3","张三","118","0"]
8.因为我们要做的是添加数据,所以只需在最后一行添加即可,这样一来,我们就确定了行数,只需循环列数即可。
而最后一行的下角标正好是原表中最后一行有效数据的行数,所以
for i in range(c):
#()内共三个参数,前两个是坐标,第三个是要写的值,即(行,列,值)
#将sheet表(复制表)进行修改
sheet.write(r,i,a[i])
9.保存到源文件路径,覆盖原文件
book_copy.save("e://book.xls")
整理代码
import xlrd,xlwt
from xlutils import copy
book = xlrd.open_workbook("e://book.xls")
r = book.sheet_by_name("user").nrows
c = book.sheet_by_name("user").ncols
book_copy = copy.copy(book)
sheet = book_copy.get_sheet(0)
a = ["3","张三","18","0"]
for i in range(c):
sheet.write(r,i,a[i])
book_copy.save("e://book.xls")