【转】python3 对excel读、写、修改的操作

一、对excel的写操作实例:

将一个列表的数据写入excel, 第一行是标题,下面行数具体的数据

 1 import xlwt
 2 #只能写不能读
 3 stus = [[‘姓名‘, ‘年龄‘, ‘性别‘, ‘分数‘],
 4         [‘mary‘, 20, ‘女‘, 89.9],
 5         [‘mary‘, 20, ‘女‘, 89.9],
 6         [‘mary‘, 20, ‘女‘, 89.9],
 7         [‘mary‘, 20, ‘女‘, 89.9]
 8         ]
 9 book = xlwt.Workbook()#新建一个excel
10 sheet = book.add_sheet(‘case1_sheet‘)#添加一个sheet页
11 row = 0#控制行
12 for stu in stus:
13     col = 0#控制列
14     for s in stu:#再循环里面list的值,每一列
15         sheet.write(row,col,s)
16         col+=1
17     row+=1
18 book.save(‘stu_1.xls‘)#保存到当前目录下

二、对excel 的读操作:

 1 import xlrd
 2 #只能读不能写
 3 book = xlrd.open_workbook(‘stu.xls‘)#打开一个excel
 4 sheet = book.sheet_by_index(0)#根据顺序获取sheet
 5 sheet2 = book.sheet_by_name(‘case1_sheet‘)#根据sheet页名字获取sheet
 6 print(sheet.cell(0,0).value)#指定行和列获取数据
 7 print(sheet.cell(0,1).value)
 8 print(sheet.cell(0,2).value)
 9 print(sheet.cell(0,3).value)
10 print(sheet.ncols)#获取excel里面有多少列
11 print(sheet.nrows)#获取excel里面有多少行
12 print(sheet.get_rows())#
13 for i in sheet.get_rows():
14     print(i)#获取每一行的数据
15 print(sheet.row_values(0))#获取第一行
16 for i in range(sheet.nrows):#0 1 2 3 4 5
17     print(sheet.row_values(i))#获取第几行的数据
18
19 print(sheet.col_values(1))#取第一列的数据
20 for i in range(sheet.ncols):
21     print(sheet.col_values(i))#获取第几列的数据

三、对excel的修改操作:

将excel中的某个值修改并重新保存

from xlutils.copy import copy
import xlrd
#xlutils:修改excel
book1 = xlrd.open_workbook(‘stu.xls‘)
book2 = copy(book1)#拷贝一份原来的excel
# print(dir(book2))
sheet = book2.get_sheet(0)#获取第几个sheet页,book2现在的是xlutils里的方法,不是xlrd的
sheet.write(1,3,0)
sheet.write(1,0,‘hello‘)
book2.save(‘stu.xls‘)

原文地址:https://www.cnblogs.com/ldyj/p/10453003.html

时间: 2024-10-04 20:10:45

【转】python3 对excel读、写、修改的操作的相关文章

Pandas 基础(4) - 读/写 Excel 和 CSV 文件

这一节将分别介绍读/写 Excel 和 CSV 文件的各种方式: - 读入 CSV 文件 首先是准备一个 csv 文件, 这里我用的是 stock_data.csv, 文件我已上传, 大家可以直接下载下来使用. 正如前面讲过的, csv 文件可以放在 jupyter notebook 同目录下, 这样直接写文件名就可以了, 但是如果没有放在同目录下, 就需要写绝对路径, 否则读取不到. import pandas as pd df = pd.read_csv('/Users/rachel/Sit

java并发读&写文件

最近在看Brian Goetz 的<<Java并发实战>>,这本书有两个版本,电子工业出版社的译本很糟糕,建议使用机械工业出版社出版出版的书籍. 在看到第三四章的时候突然想到了多线程读写文件,同时遇到一些书中没有的问题 1, 如何保证组合对象的安全性? 2, 如何判断不变性的约束条件 3, 如何不通过synchronized关键字和锁进行同步处理? 下面是一段代码, 用来从source 读取数据,通过多线程写入target文件中 思路: 1, 如何read/write文件? 2,

Hive整合HBase——通过Hive读/写 HBase中的表

写在前面一: 本文将Hive与HBase整合在一起,使Hive可以读取HBase中的数据,让Hadoop生态系统中最为常用的两大框架互相结合,相得益彰. 写在前面二: 使用软件说明 约定所有软件的存放目录: /home/yujianxin 一.Hive整合HBase原理 Hive与HBase整合的实现是利用两者本身对外的API接口互相进行通信,相互通信主要是依靠hive-hbase-handler-0.9.0.jar工具类,如下图 Hive与HBase通信示意图 二.具体步骤 安装前说明 1.关

C?#? ?读?写?S?Q?L?数?据?库?I?m?a?g?e?字?段

数据库的Image字段保存的是字节,所以写入数据库Image字段和从数据库Image字段读取的内容都应该为字节. 1.数据库Image字段读写文件      写文件:写文件的过程为将文件以流文件形式打开并将内容读取到一个byte数组,然后将此byte数组写入数据库的Image字段. 源码:     FileInfo finfo=new FileInfo("文件名");   //绝对路径 if(finfo.Exists) {         SqlConnection conn=new 

AFS Tool Excel 宏编写的工具 批量生成Excel 文件

AFS Tool Excel 宏编写的工具,文章最后附上工具下载. 主要实现的功能是在Excel中通过宏的编写, 按照一个模板,把大量的数据分类并生成多个Excel文件 AFS Tool中一共有3个Sheet: Info.Data.Cover Sheet: Info 中主要是用户操作界面及软件说明,只有一个生成文件的按钮, 点击的时候,会提示保存生成文件的路径,文件名按一定的格式生成. Sheet: Data中主要是存储要处理的数据 Sheet: Cover中主要是生成文件的模板,生成的Exce

ubuntukylin基础 chmod 对一个文件的所有者,用户组,其他人分别添加或删除 读 写 执行 的权限

镇场文:       学儒家经世致用,行佛家普度众生,修道家全生保真,悟易理象数通变.以科技光耀善法,成就一良心博客.______________________________________________________________________________________________________ 我的系统:UbuntuKylin 16.04 LTS 64bit step0: 查看指定文件的权限 step1: 减去所有者的 读 写 执行的权限 step2: 查看执行效果

asp.net 文件操作小例子(创建文件夹,读,写,删)

静态生成要在虚拟目录下创建文件夹 来保存生成的页面 那么就要对文件进行操作 一.创建文件夹 using System.IO; string name = "aa"; string path = Server.MapPath("") + "\\" + name; if (Directory.Exists(path)) { Response.Write("<script>alert('文件夹已存在了!');history.go(

POI根据EXCEL模板,修改内容导出新EXCEL (只支持HSSF)

package excelPoiTest; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.p

Python 文件(读\写)操作

文件(读\写)操作 open()函数,用来打开文件,创建file对象.open(name[,mode[,buffering]])name:要打开的文件mode:是打开文件的模式(读.写.追加)buffering:是否要寄存,默认为0或者False(不寄存),1或True表示寄存(意味着使用内存来代替硬盘,让程序更快,只有使用flush或者close才会更新硬盘上的数据),如果大于1表示寄存区的缓冲大小(单位:字节),如果是负值,表示寄存区为系统默认大小. open函数中模式参数的常用量:r 读模