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

Python语言中的第三方模块xlrd和xlwt是分别起读取excel的内容和写入excel的内容的作用,现在假设excel已经存在且里面的一张表格中有内容了,怎么使用x... Python语言中的第三方模块xlrd和xlwt是分别起读取excel的内容和写入excel的内容的作用,现在假设excel已经存在且里面的一张表格中有内容了,怎么使用xlrd和xlwt模块向excel插入内容,请编写思路和实际代码,非懂勿扰,谢谢分享,急!图片中为存在的excel和里面的表格 展开
 我来答
DSCWJDSCWJ
2018-04-24 · TA获得超过265个赞
知道小有建树答主
回答量:182
采纳率:83%
帮助的人:18.2万
展开全部

你这里存在一个误区,只靠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的数据插入或修改,但是可以间接的来

  1. 使用xlrd读原有Excel

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

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

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

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式