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的问题”

参考技术A 没用过,给你个思路:
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()方法获取表格

 

参考链接:https://www.cnblogs.com/dream66/p/13342157.html

以上是关于python xlwt,xlutils 在excel里面如何插入一行数据的主要内容,如果未能解决你的问题,请参考以下文章

python操作excel——xlrd xlwt xlutils

python_xlutils : python利用xlutils修改表格内容

python xlutils 修改表格内容

机器学习之数据预处理,Pandas读取excel数据

Python操作Excel

python基础-3