Python语言中的第三方模块xlrd和xlwt是分别起读取excel的内容和写入excel的内容的作用

Python语言中的第三方模块xlrd和xlwt是分别起读取excel的内容和写入excel的内容的作用,现在假设excel已经存在且里面的一张表格中有内容了,怎么使用xlrd和xlwt模块向excel插入内容,请编写思路和实际代码,非懂勿扰,谢谢分享,急!图片中为存在的excel和里面的表格

你这里存在一个误区,只靠xlrd和xlwt不能直接实现对已经存在Excel进行数据插入,原因如下:

1、使用xlrd的xlrd.open_workbook()方法打开文件返回的是一个只读对象,只能读Excel内容,不能向Excel写入数据;

2、使用xlwt的xlwt.Workbook()方法是创建一个空的Excel对象,然后向里面写入;

所以读取和创建Excel都可以直接实现,但是修改已经存在的Excel需要借助xlutils,它的作用是在xlrd类型的workbook和xlwt类型的workbook之间建立了一个管道,利用xlutils的copy方法将只读对象变成可写对象,简单代码实现如下:

import xlrd
from xlutils.copy import copy

readOnlyWorkbook = xlrd.open_workbook('TestFile.xls')
readOnlySheet= readOnlyWorkbook.sheet_by_index(0)  # 通过sheet_by_index()获取的sheet没有write()方法

writableWorkbook= copy(readOnlyWorkbook)  # 利用xlutils.copy函数,将xlrd.Book转为xlwt.Workbook
writableSheet = writableWorkbook.get_sheet(0)  # 通过get_sheet()获取的sheet有write()方法
writableSheet.write(3, 3, 'insertData')  # 写入3,3这个单元格

writableWorkbook.save('TestFile.xls')  # 保存文件

你自己增加代码判断原Excel某个单元格是否有数据,完善你的代码,避免插入时覆盖了,运行后Excel情况见截图

上述方法我写的是不能“直接”实现已有Excel的数据插入或修改,但是可以间接的来

    使用xlrd读原有Excel

    使用xlwt创建一个新文件并把1中读取的内容写入

    再插入需要增加的数据,保存

    删掉原Excel,把新创建的Excel改成原Excel的名字

这种方法你就自己玩,因为原来Excel可能有格式啊,公式啊什么的,新创建就会很麻烦

温馨提示:答案为网友推荐,仅供参考