python xlwt,xlutils 在excel里面如何插入一行数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python xlwt,xlutils 在excel里面如何插入一行数据相关的知识,希望对你有一定的参考价值。
一般可以通过write写入数据,但是怎么插入一行呢?
确实还真就没用过这样的函数,不过可以自己实现。
就是把插入行之后值重新输出来。
import xlwt;import xlrd;
from xlutils.copy import copy;
#styleBoldRed = xlwt.easyxf('font: color-index red, bold on');
#headerStyle = styleBoldRed;
#wb = xlwt.Workbook();
#ws = wb.add_sheet('sheetName');
#ws.write(0, 0, "Col1", headerStyle);
#ws.write(0, 1, "Col2", headerStyle);
#ws.write(0, 2, "Col3", headerStyle);
#wb.save('fileName.xls');
#open existed xls file
oldWb = xlrd.open_workbook("fileName.xls", formatting_info=True);
oldWbS = oldWb.sheet_by_index(0)
newWb = copy(oldWb);
newWs = newWb.get_sheet(0);
inserRowNo = 1
newWs.write(inserRowNo, 0, "value1");
newWs.write(inserRowNo, 1, "value2");
newWs.write(inserRowNo, 2, "value3");
for rowIndex in range(inserRowNo, oldWbS.nrows):
for colIndex in range(oldWbS.ncols):
newWs.write(rowIndex + 1, colIndex, oldWbS.cell(rowIndex, colIndex).value);
newWb.save('fileName.xls');
print "save with same name ok";追问
谢谢,果然也只有这样的思路
可以帮我继续解决另外一个问题不?
百度知道里面的 “python 编辑excel的问题”
1、看看能不能定位为到要插入的那行,然后进行写操作,看看是不是原先的下一行被挤下去了
2、如果不行看看这个模块的文档
python_xlutils : python利用xlutils修改表格内容
一、xlutils是什么
- 是一个提供了许多操作修改excel文件方法的库;
- 属于python的第三方模块
- xlrd库用于读取excel文件中的数据,xlwt库用于将数据写入excel文件,修改用xlutils模块;
- xlutils库也仅仅是通过复制一个副本进行操作后保存一个新文件,像是xlrd库和xlwt库之间的一座桥梁,需要依赖于xlrd和xlwt两个库
二、xlutils基础及应用
2.1 xlutils模块安装
# 命令行输入如下,进行联网在线安装
pip install xlutils
2.2 xlutils模块实战使用
import os import xlrd from xlutils.copy import copy excel_path = os.path.join( os.path.dirname(__file__) , \'data/test_data.xls\' ) wb = xlrd.open_workbook( excel_path,formatting_info=True) # 创建工作薄对象 xlrd模块2007 2003 new_workbook = copy(wb) # 将new_workbook变成可写的对象 xlwt 对象 sheet = new_workbook.get_sheet(wb.sheet_names().index(\'Sheet1\')) #sheet_by_name(\'Sheet1\') sheet.write(2,3,60) new_workbook.save(excel_path)
备注:
1、要进行修改excel文件,先把excel文件设置成 2003版本的格式
2、由上例所示,其中formatting_info=True表示保留表格数据格式,设置后,后续的copy()方法复制新副本的时候会保留格式。
3、不能使用xlrd中的sheet_by_name、sheet_by_index方法,只能通过自带get_sheet()方法获取表格
以上是关于python xlwt,xlutils 在excel里面如何插入一行数据的主要内容,如果未能解决你的问题,请参考以下文章
python操作excel——xlrd xlwt xlutils