python 读excel每行替换_Python读写改Excel的方法_weixin_39602560的博客-程序员宅基地

技术标签: python 读excel每行替换  

一.读Excel表(xlrd模块)

import xlrd #导入模块

data = xlrd.open_workbook('./report/result.xls') #打开excel

table = data.sheets()[0] #读sheet1

# table = data.sheet_by_name(u'Sheet1') #或通过sheet名获取

print(table.nrows) #行数

print(table.ncols) #列数

print(table.row_values(0)) #第一行

print(table.col_values(0)) #第一列

print(table.cell(1,2).value) #输出单元格坐标为(1,2)的值

二.写Excel表(xlwt模块)

# -*- coding: utf-8 -*-

#!/usr/bin/python

import xlwt #导入模块

wb = xlwt.Workbook() #创建Excel

ws = wb.add_sheet('test_sheet1') #创建sheet

ws.write(0, 0, 'hello') #在(0,0)写入hello

ws.write(1, 0, u'你好') #在(1,0)写入"你好"

wb.save('./report/result.xls') #保存

三.改Excel表(xlutils模块)

# -*- coding: utf-8 -*-

#!/usr/bin/python

import xlrd

import xlwt

from xlutils.copy import copy #导入模块

value=[[1,2,3],[4,5,6]]

oldwb = xlrd.open_workbook("./report/result.xls",formatting_info=True) # 打开excel,formatting_info保留原有格式

newwb = copy(oldwb) # 将xlrd拷贝转化为xlwt,变为可编辑

#sheet1中改写数据

newws = newwb.get_sheet(0) # 获取sheet1,括号里变为1,则获取sheet2,result.xls在创建时必须创建了sheet2,不然会报错

newws.write(1,0,"end"); #sheet1中改写数据

#追加新的sheet

add_sheet = newwb.add_sheet("sheet2",cell_overwrite_ok=True) # 增加新的sheet

rows = len(value) #行数

for i in range(0, rows):

for j in range(0, len(value[i])):

add_sheet.write(i, j, value[i][j]) #新的sheet写入数据

newwb.save("./report/result.xls")

注:写入中文时,如不加u,则会报:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)

四.增加样式,合并单元格

# -*- coding: utf-8 -*-

#!/usr/bin/python

import xlrd

import xlwt

from xlutils.copy import copy

def write_excel_xls(path,sheet_name,value):

workbook = xlwt.Workbook()

sheet = workbook.add_sheet(sheet_name,cell_overwrite_ok=True) #cell_overwrite_ok可以覆盖原单元格中数据

# 添加边框

borders = xlwt.Borders()

borders.left = xlwt.Borders.THIN

borders.right = xlwt.Borders.THIN

borders.top = xlwt.Borders.THIN

borders.bottom = xlwt.Borders.THIN

borders.bottom_colour = 0x12 #添加边框颜色为黑色

#居中显示

al = xlwt.Alignment()

al.horz = 0x02

al.vert = 0x01

#加入style

style = xlwt.XFStyle()

style.borders = borders

style.alignment = al

#设置第1列列宽

sheet.col(0).width = 4500

#数据写入excel

rows = len(value) #行数

for i in range(0, rows):

for j in range(0, len(value[i])):

sheet.write(i, j, value[i][j],style)

#合并单元格

#worksheet.write_merge(1, 2, 0, 3, 'Second Merge', style) # 合并第1行到第2行的第0列到第3列。

type_list=['TLC Single plane','SLC Single plane']

list=[]

for i in type_list:

for j in range(rows):

if value[j][0]==i: #判断0列每行的数据是否等于type_list中的值

list.append(j) #将行号加入到list中

if len(list)!=0:

sheet.write_merge(list[0],list[-1], 0, 0, i,style) #合并首行、合并末行、合并首列、合并末列、单元格内容、格式

list=[]

workbook.save(path)

if __name__ == '__main__':

value=[[u'操作类型',u'Channel'],['TLC Single plane',0],['TLC Single plane',1],['TLC Single plane',2],['SLC Single plane',0],['SLC Single plane',1],['SLC Single plane',2]]

write_excel_xls("a.xls","a",value)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39602560/article/details/110171459

智能推荐

openwrt 编译软件包出现错误(is missing dependencies for the following libraries: libpthread.so.0)_bailyzheng的博客-程序员宅基地

install -m0755 /home/yanfa/workspace/trunk-wr703/build_dir/target-mips_r2_uClibc-0.9.33.2/lk_cnp_serial_eth/lk_cnp_serial_eth /home/yanfa/workspace/trunk-wr703/build_dir/target-mips_r2_uClibc-0.9.33.2

Dubbo 端口冲突问题_chuaizhuo3718的博客-程序员宅基地

dubbo 生产者在同一台服务器上起多个时报端口冲突的问题,报错信息如下: Caused by: com.alibaba.dubbo.remoting.RemotingException: Failed to bind NettyServer on /*.*.*.*:20880, cause...

K8s<五>_CloudVapour的博客-程序员宅基地

七、Kubernetes Pod 资源1、Pod 服务状态1、无状态服务是指该服务运行的实例不会在本地存储需要持久化的数据,并且多个实例对于同一个请求响应的结果是完全一致的。多个实例可以共享相同的持久化数据。例如:nginx 实例,tomcat 实例等相关的 k8s 资源有:ReplicaSet、ReplicationController、Deployment等,由于是无状态服务,所以这些控制器创建的 pod 序号都是随机值。并且在缩容的时候并不会明确缩容某一个pod,而是随机的,因为

Elasticsearch 聚合分析的细节_水的精神的博客-程序员宅基地

聚合分析运算是数据库中重要的特性,对于数据分析场景尤为重要。类似于关系型数据库中的 SUM,AVG, GROUP BY 等,Elasticsearch 也提供了丰富的聚合运算方式,可以满足大部分分析和查询场景。Doc Values 和 Field Data在学习聚合分析之前,我们先了解一下 Doc Values 和 Field Data 数据结构,我们知道倒排索引的优势在于查找包含某个项的文档,反过来确定哪些项是否在某个文档中并不高效,ES 为了满足排序、聚合以及执行脚本的需求,因此就出现了 Doc

[转载]Ubuntu 16.04编译安装OpenCV(Python2 /python3)(使用虚拟环境)_ubuntu opencv 编译python3_雨后天空sunny的博客-程序员宅基地

[转载]http://blog.topspeedsnail.com/archives/4755Ubuntu 16.04编译安装OpenCV(Python)本帖记录在Ubuntu 16.04上安装OpenCV的步骤,并分别安装Python 2和Python 3的绑定。如果你只用C++接口,可以忽略Python的安装。Ubuntu 16.04系统默认安装了两个Python版本:Pyth

波士顿狗加入抗疫大军;SpaceX成功发射第七批网络卫星!|科技前沿周报_硅谷洞察的博客-程序员宅基地

热点追踪/ 深度探讨/ 实地探访 / 商务合作Hello大家好呀!硅谷前沿科技周报又跟大家见面了。上周科技界又发生了哪些大事呢?小探带你来看看吧!首先,前沿科技方面,科技界的“网红”...

随便推点

3.5 图像分类数据集(Fashion-MNIST)_谦小白的博客-程序员宅基地

文章目录3.5 图像分类数据集(Fashion-MNIST)3.5.1 获取数据集3.5.2 读取小批量小结3.5 图像分类数据集(Fashion-MNIST)在介绍softmax回归的实现前我们先引入一个多类图像分类数据集。它将在后面的章节中被多次使用,以方便我们观察比较算法之间在模型精度和计算效率上的区别。图像分类数据集中最常用的是手写数字识别数据集MNIST[1]。但大部分模型在MNIS...

使用 StAX 解析 XML,第 2 部分: 拉式解析和事件_iteye_2125的博客-程序员宅基地

http://www.ibm.com/developerworks/cn/xml/x-stax2.html探讨 StAX 基于事件迭代器的 APIPeter Nehrer([email protected]), 自由撰稿人, 独立咨询顾问简介:Streaming API for XML (StAX) 的基于事件迭代器 API 无...

Spring学习笔记(10)-----------方法注入_chunbo1110的博客-程序员宅基地

引用 在大部分情况下,容器中的bean都是singleton类型的。如果一个singleton bean要引用另外一个singleton bean,或者一个非singleton bean要引用另外一个非singleton bean时,通常情况下将一个bean定义为另一个bea...

现代大学英语精读第二版(第三册)学习笔记(原文及全文翻译)——Unit 8A - In My Day(在我那个年代)_in my day 课文翻译_预见未来to50的博客-程序员宅基地

Unit 8A -In My DayIn My DayRussell BakerAt the age of eighty my mother had her last bad fall, and after that her mind wandered free through time. Some days she went to weddings and funerals that had taken place half a century earlier. On others she .

使用ContentProvider共享数据_choupumi4274的博客-程序员宅基地

使用ContentProvider共享数据: public boolean onCreate() 该方法在ContentProvider创建后就会被调用,Android开机后, ContentProvider在其它应用第一次访问它时才会被创建。 public Uri insert(...

全球语言标准码及其国家或地区对照_世界标准语言码_大魔王sama的博客-程序员宅基地

最近项目要求实现国际化,所以了解了一下全球语言标准码。我们平时看到的标注都是 zh_CN ,en_US 这种样子的,根据查阅发现,这种标注由两部分组成:ISO-639 (语言码)ISO-3166 (国家或地区码)组成形式就是:语言码_国家码ISO-639 语言标准码语言标准码AbkhazabAfaraaAfrikaansafAkanakAlbaniansqAmharicamArabicarAragonesean

推荐文章

热门文章

相关标签