python读写excel文件

简介:

一、概述

Python操作excel的三个工具包如下,注意,只能操作.xls,不能操作.xlsx。

  • xlrd: 对excel进行读相关操作

  • xlwt: 对excel进行写相关操作

  • xlutils: 对excel读写操作的整合

这三个工具包都可以直接使用pip进行下载:

  • sudo pip install xlrdsudo 

  • pip install xlwtsudo 

  • pip install xlutils



二、使用xlrd模块读取已有的excel文件内容


    xlrd是用来从一个excel文件中读取内容的模块


代码如下:

导入

import xlrd

打开excel

data = xlrd.open_workbook('demo.xls') #注意这里的workbook首字母是小写

查看文件中包含sheet的名称

data.sheet_names()

得到第一个工作表,或者通过索引顺序 或 工作表名称

table = data.sheets()[0]

table = data.sheet_by_index(0)

table = data.sheet_by_name(u'Sheet1')

获取行数和列数

nrows = table.nrows

ncols = table.ncols

获取整行和整列的值(数组)

table.row_values(i)

table.col_values(i)

循环行,得到索引的列表

for rownum in range(table.nrows):

print table.row_values(rownum)

单元格

cell_A1 = table.cell(0,0).value

cell_C4 = table.cell(2,3).value

分别使用行列索引

cell_A1 = table.row(0)[0].value

cell_A2 = table.col(1)[0].value

简单的写入

row = 0

col = 0

ctype = 1 # 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

value = 'lixiaoluo'

xf = 0 # 扩展的格式化 (默认是0)

table.put_cell(row, col, ctype, value, xf)

table.cell(0,0) # 文本:u'xxxx'

table.cell(0,0).value # 'yyyy'


三、使用xlwd模块写内容保存到新的excel文件中


    xlwt只能创建一个全新的excel文件,然后对这个文件进行写入内容以及保存。但是大多数情况下我们希望的是读入一个excel文件,然后进行修改或追加,这个时候就需要xlutils了。


代码如下:

导入xlwt

import xlwt

新建一个excel文件

file = xlwt.Workbook() #注意这里的Workbook首字母是大写,无语吧

新建一个sheet

table = file.add_sheet('sheet name')

写入数据table.write(行,列,value)

table.write(0,0,'test')

如果对一个单元格重复操作,会引发

returns error:# Exception: Attempt to overwrite cell:# sheetname=u'sheet 1' rowx=0 colx=0

所以在打开时加cell_overwrite_ok=True解决

table = file.add_sheet('sheet name',cell_overwrite_ok=True)

保存文件

file.save('demo.xls')

另外,使用style

style = xlwt.XFStyle() #初始化样式

font = xlwt.Font() #为样式创建字体

font.name = 'Times New Roman'

font.bold = True

style.font = font #为样式设置字体

table.write(0, 0, 'some bold Times text', style) # 使用样式


四、使用xlutils模块追加写入内容到已有的excel文件中(新内容追加到已有内容里面)


代码如下:

# -*- coding: cp936 -*-

import xlwt;

import xlrd;

#import xlutils;

from xlutils.copy import copy;

import xlrd

#用xlrd提供的方法读取一个已经存在的excel文件,使用"formatting_info=True"保持源文件格式不变

rexcel = xlrd.open_workbook("file.xls",formatting_info=True)

#用wlrd提供的方法获得现在已有的行数

rows = rexcel.sheets()[0].nrows

#cols = rexcel.sheets()[0].ncols

#用xlutils提供的copy方法将xlrd的对象转化为xlwt的对象

excel = copy(rexcel)

#用xlwt对象的方法获得要操作的excel中的表名(sheet),0表示第一张表,1表示第二张表。

table = excel.get_sheet(0)

values = ['1','2','3']

row = rows

print row

for value in values:

# xlwt对象的写方法,参数分别是行、列、值

    table.write(row,0,value)

    table.write(row,1,"haha")

    table.write(row,2,"lala")

    row+=1

# xlwt对象的保存方法,这时便覆盖掉了原来的excel  

excel.save("file.xls")


本文转自 老鹰a  51CTO博客,原文链接:http://blog.51cto.com/laoyinga/1947978


相关文章
|
8天前
|
Python
Python办公自动化:xlwings对Excel进行分类汇总
Python办公自动化:xlwings对Excel进行分类汇总
25 1
|
8天前
|
Python
Python自动化:xlwings合并Excel
Python自动化:xlwings合并Excel
20 0
|
17天前
|
数据挖掘 Python
🚀告别繁琐!Python I/O管理实战,文件读写效率飙升的秘密
在日常编程中,高效的文件I/O管理对提升程序性能至关重要。Python通过内置的`open`函数及丰富的库简化了文件读写操作。本文从基本的文件读写入手,介绍了使用`with`语句自动管理文件、批量读写以减少I/O次数、调整缓冲区大小、选择合适编码格式以及利用第三方库(如pandas和numpy)等技巧,帮助你显著提升文件处理效率,让编程工作更加高效便捷。
30 0
|
19小时前
|
数据处理 Python
Python 高级技巧:深入解析读取 Excel 文件的多种方法
在数据分析中,从 Excel 文件读取数据是常见需求。本文介绍了使用 Python 的三个库:`pandas`、`openpyxl` 和 `xlrd` 来高效处理 Excel 文件的方法。`pandas` 提供了简洁的接口,而 `openpyxl` 和 `xlrd` 则针对不同版本的 Excel 文件格式提供了详细的数据读取和处理功能。此外,还介绍了如何处理复杂格式(如合并单元格)和进行性能优化(如分块读取)。通过这些技巧,可以轻松应对各种 Excel 数据处理任务。
27 16
|
17天前
R Excel 文件
Excel 格式的文件主要是 xls 或 xlsx,这两种文件可以在 R 语言中导入 xlsx 库来实现直接的读取。
53 23
|
7天前
|
数据可视化 数据处理 Python
Python操作Excel:轻松实现数据处理与分析
Python操作Excel:轻松实现数据处理与分析
11 0
|
8天前
|
Python
Python办公自动化:xlwings对Excel进行列拆分
Python办公自动化:xlwings对Excel进行列拆分
18 0
|
8天前
|
Python
Python办公自动化:xlwings拆分Excel
Python办公自动化:xlwings拆分Excel
16 0
|
8天前
|
Python
Python自动化:xlwings替换Excel中内容
Python自动化:xlwings替换Excel中内容
19 0
|
8天前
|
Python
Python:Pandas实现批量删除Excel中的sheet
Python:Pandas实现批量删除Excel中的sheet
23 0
下一篇
无影云桌面