文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python读写excel表格的方法一

2023-01-31 05:39

关注

目的:实现用python做excel的读取、新增、修改操作。


环境:ubuntu 16.04  Python 3.5.2


用python读写文档,一般是操作txt文件或者可以用记事本打开的文件,因为这个操作很直接,不需要导入其他模块,但如果想要对excel表格进行操作,就需要导入其他模块,包括:xlrd(读取),xlwt(写入),xlutils(复制),一般是这三个模块,且需要另外下载,http://pypi.python.org/pypi/模块名。


表格的读取:

读取只需要导入xlrd模块:

import xlrd

filename = 'test.xls'

# 以xlrd打开表格给book
book = xlrd.open_workbook(filename)
# 获取工作表的方法之一,用下标。
sheel_1 = book.sheet_by_index(0)
# 打印第一个工作表的名的方法之一。
print("Worksheet name(s): ",book.sheet_names()[0])
# 打印表格文件中工作表的数量
print('book.nsheets',book.nsheets)
# 打印工作表名方法之二和打印这个表的总行数和总列数。
print('sheel_1.name:',sheel_1.name,'sheel_1.nrows:',sheel_1.nrows,'sheel_1.ncols:',sheel_1.ncols)
# 打印第一个工作表中行0列1的值,用下标。
print('A1:',sheel_1.cell_value(rowx=0,colx=1))
# 打印单元格的另一种方法
print('A2:',sheel_1.cell_value(0,2))


表格的新增:

新增只需要导入xlwt模块:

import xlwt

filename = 'test.xls'

book = xlwt.Workbook()
sheet_1 = book.add_sheet('hello')
sheel_2 = book.add_sheet('word')
sheet_1.write(0,0,'hello')
sheet_1.write(0,1,'world')
row1 = sheet1.row(1)
row1.write(0,'A2')
row1.write(1,'B2')
 
sheet_1.col(0).width = 10000
 
sheet_2 = book.get_sheet(1)
sheet_2.row(0).write(0,'Sheet 2 A1')
sheet_2.row(0).write(1,'Sheet 2 B1')
sheet_2.flush_row_data()
 
sheet_2.write(1,0,'Sheet 2 A3')
sheet_2.col(0).width = 5000
sheet_2.col(0).hidden = True
 
book.save(filename)


修改已经存在的表格

一般修改表格步骤:导入模块--xlrd读取表格--xlutils复制读取的表格--xlwt对表格修改--xlwt保存表格--删除旧表格。


解析:对excel同时读写是不行的,细心会发现office操作表格时也是这个步骤,先是读取,如果修改了数据,会先复制一份,产生一个带$的临时隐藏文件,修改是在临时文件上操作,当用户保存时会删除旧的文件,把临时文件命名为旧文件名,感觉就像直接读写了表格,所以你没有正常关闭的表格会有一个临时文件,你没保存的东西全部在里面,也可能是部分。


下面演示一下实际python应用步骤:

import xlrd
import xlwt
from xlutils.copy import copy

# 文件名变量
filename = 'test.xls'

# 读取文件
book_r = xlrd.open_workbook(filename)

# 复制原表格
book_w = copy(book_r)

# 以编辑方式得到文件的第一个工作表
sheet_1 = book_w.get_sheet(0)

# 定义要输入的内容
text = ‘This is a test of Ricky.'

# 定义写入表格的单元格行号,使用下标1
row = 1

# 定义写入表格的单元格列号,使用下标2
col = 2

# 把内容写入表格
sheet_1.write(row, col, text)

# 删除原文件
os.remove(filename)

# 保存修改的文件为原文件
book_w.save(filename)

说明:

1)上面那么多定义是为了说明参数的位置和意义,可以直接把值写入参数位置,但参数使用变量可以方便复用,比如在循环中;

2)读取表格的文本内容需要用value();

3)如果想要保留源文件的格式,打开部分的需要写成:

book_r = xlrd.open_workbook(filename, formatting_info=True)

4)sheet没有save,workbook才有save。


一次性读写表格可以参看方法二(私链)。



阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯