python批量处理excel文本改为数字_Python批量修改Excel中的文件内容-程序员宅基地

技术标签: python批量处理excel文本改为数字  

import os

import xlrd

from xlutils.copy import copy

def base_dir(filename=None):

return os.path.join(os.path.dirname(__file__),filename)

"""对excel进行操作"""

work = xlrd.open_workbook(base_dir("excel.xls"))

# 索引到第X个工作表

sheet = work.sheet_by_index(0)

#查看有多少行

print(sheet.nrows)

#查看有多少列

print(sheet.ncols)

#获取单元格内容

print(sheet.cell_value(5,2))

"""对excel进行修改/添加内容"""

# 找到需要更该的xls

work = xlrd.open_workbook(base_dir("excel.xls"))

print(work)

# 对数据表格进行复制

old_content = copy(work)

# 定位到Sheet1表

ws = old_content.get_sheet(0)

#在sheet1表中写入内容

ws.write(7,2,"Tao")

#对修改后的内容进行保存

old_content.save(base_dir("data.xls"))

Python批量修改Excel中的文件内容

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

from xlrd import open_workbook

from xlutils.copy import copy

# 括号里放入要读取的文件的绝对路径

wb = open_workbook('./res/bing.xls')

# 获取所读取文件的第一张表单

sheet = wb.sheet_by_index(0)

# 获取该表单的行数

s = sheet.nrows

# 复制原文件,因为原文件只能读取,不能写入数据,所以要复制得到一个可以写入数据的文件

newwb = copy(wb)

# 获取可写文件的第一张表单

newsheet = newwb.get_sheet(0)

try:

for row in range(sheet.get_rows()):

# 遍历每一行,当8列的值小于12时,就把该值改为0

if sheet.cell(row,7).value < 12:

newsheet.write(row, 7, 0)

except:

print("")

newwb.save('1.xls')123456789101112131415161718192021222324

————————

xlwt 写库的局限性: 只能写入新建的 excel。

xlutils 库的 copy 功能可能帮助我们打破这个局限性。

首先,用pip install xlutils来添加 xlutils 库。

import xlwt

import xlrd

import xlutils.copy

rd = xlrd.open_workbook("Hello.xls", formatting_info = True) # 打开文件

wt = xlutils.copy.copy(rd) # 复制

sheets = wt.get_sheet(0) # 读取第一个工作表

sheets.write(m, n, "I love you!") # 向 m-1 行 n-1 列的单元格写入内容

wt.save("Hi.xls") # 保存

123456789

实现原理就是:我先读,再用xlutils.copy的 copy 复制一份,复制的这个就能实现写入了。

xlrd.open_workbook("Hello.xls", formatting_info = True)

里面的参数是可选的: 很重要,这个是保留原格式,没有它的话你会发现新的excel一点样式都没有。

喜欢的

————————————————

————————

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

智能推荐

Cocos2d-x在win7下的android交叉编译环境-程序员宅基地

文章浏览阅读763次,点赞8次,收藏17次。很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,对此我整理了一些资料,需要的可以免费分享给大家我的【Github】会分享一些关于Android进阶方面的知识,也会分享一下最新的面试题~如果你熟练掌握GitHub中列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。

轮番面试,阿里P8总结出了java程序设计,Javaweb框架面试题-程序员宅基地

文章浏览阅读256次,点赞5次,收藏10次。由于文案过于长,在此就不一一介绍了,这份Java后端架构进阶笔记内容包括:Java集合,JVM、Java并发、微服务、SpringNetty与 RPC 、网络、日志 、Zookeeper 、Kafka 、RabbitMQ 、Hbase 、MongoDB、Cassandra 、Java基础、负载均衡、数据库、一致性算法、Java算法、数据结构、分布式缓存等等知识详解。本知识体系适合于所有Java程序员学习,关于以上目录中的知识点都有详细的讲解及介绍,掌握该知识点的所有内容对你会有一个质的提升,

Android~apk的混淆和加固(1),你有过迷茫吗-程序员宅基地

文章浏览阅读579次,点赞29次,收藏11次。针对apk,加固是多维度的安全防护方案,包括反破解、反逆向、防篡改等,可以防止应用被各类常见破解工具逆向,安全性要远大于单纯的代码混淆。操作的对象是项目打包成的apk文件。为什么我们需要混淆?因为java字节码特性很容易反编译。对于加固,上架应用市场一般提供相关文档指导我们进行apk的渠道打包发布,这里不做展开我们先大概知道加固的一些原理。修改gradlerelease {参考需要保留的类及方法,确定项目中哪些不能混淆的类参考混淆模板,编写我们的混淆文件。

RAS使用拨号网络拨号的类_mfc ras拨号不用指定域名吗-程序员宅基地

文章浏览阅读4.7k次。RAS Socket 拨号网络_mfc ras拨号不用指定域名吗

[Unity][Android]安卓adb真机调试Profile性能检测缩短时间_unity android 真机性能显示-程序员宅基地

文章浏览阅读4.9k次。unity编辑器 连接 安卓设备 进行 adb真机调试的时候,unity需要设置 分析模式,才能 显示 安卓 的Debug.log信息当Unity使用ADB服务对安卓构建apk进行build的时候,不要一开始 使得Unity分析窗口进入分析模式,而是 当 安卓设备 进入到自己 想要调试的 位置,再开启分析模式显示 代码中的Debug.log信息。在Unity编辑器 使用ADB服务对安卓 进行 分析的 时候,只要开启 分析模式 就会 很卡。..._unity android 真机性能显示

随便推点

Qt上报错:undefined reference to xxx@openssl_1.0.0_undefined reference to symbol 'x509_get_subject_na-程序员宅基地

文章浏览阅读3.8k次,点赞2次,收藏6次。关于openssl版本不兼容问题产生原因解决办法原本pro配置文件:/*无效的配置*/#增加程序库文件路径LIBS += \ -lcurl -lcrypto -ljsoncpp直接上错误代码:/usr/lib/x86_64-linux-gnu/libcurl.so:对‘PKCS12_PBE_add@OPENSSL_1.0.0’未定义的引用/usr/lib/x86_64-linux-gnu/libcurl.so:对‘OCSP_basic_verify@OPENSSL__undefined reference to symbol 'x509_get_subject_name@@openssl_1_1_0

N叉树(N-ary Tree)-程序员宅基地

文章浏览阅读2.7k次。N叉树N 叉树的定义N 叉树的遍历N 叉树的经典递归解法"自顶向下"的解决方案"自底向上"的解决方案N 叉树的定义二叉树是一棵以根节点开始,每个节点含有不超过 2 个子节点的树。将这个定义扩展到 N 叉树 。 一棵以根节点开始,每个节点不超过 N 个子节点的树,称为 N叉树阅读参考:https://leetcode-cn.com/leetbook/read/n-ary-tree/x0wi57/N 叉树的遍历一棵二叉树可以按照前序、中序、后序或者层序来进行遍历。在这些遍历方法中,前序遍历、后序遍历和_n叉树

shell脚本编程常见系统变量和环境变量,shell脚本常用流程控制语句_熟悉shell常用的系统变量和环境变量,练习语句-程序员宅基地

文章浏览阅读6.1k次。shell编程常见系统变量命令功能$0当前脚本名称$?命令或程序执行完后的状态,返回0则表示执行成功$n当前脚本的第n个参数,n=1,2,…9$#当前脚本的参数个数(不包括程序本身)$*当前脚本的所有参数(不包括程序本身)$$程序本身的PID号shell编程常见环境变量命令功能PATH命令所示路径,以冒号为分割PWD显示当前所在路径USER打印当前用户名ID打印当前用户id信息TERM_熟悉shell常用的系统变量和环境变量,练习语句

PostgreSQL 获取拼音首字母的函数 (可以获取所有中文字符)经典原创分享-程序员宅基地

文章浏览阅读1.4k次。CREATE OR REPLACE FUNCTION "gis"."get_hzpycap"("v_str" varchar, "needhz" int4=0) RETURNS "pg_catalog"."varchar" AS $BODY$DECLARE pos INT4; hzlen INT4; hz ..._pg 中文简拼函数

深度学习框架Pytorch学习笔记-程序员宅基地

文章浏览阅读902次,点赞24次,收藏23次。由于工作原因,需要使用到深度学习pytorch框架,所以,跟随视频学习了深度学习框架的使用方法

JWT的Token自动续期和主动终止_jwt 续期-程序员宅基地

文章浏览阅读8.7k次,点赞17次,收藏43次。(1)JWT的续签问题和终止问题 JWT的优势在于无状态,也就是生成的Token中本身有存储信息(payload),所以不需要依赖Redis和DB。JWT本身也有有效期参与签名,问题在于这个有效期不能更改,也很好理解如果参与签名的参数(有效期)发生变化,Token也就不一样了。如果有效期不能改变,即便时间设计的再长,也会有到期的时候,而且Token这种设计初衷也不能有效期很长,导致用户在操作过程中Token到期授权失败,这种情况根本是无法接受的。 另外,JWT的Token签发之后,理论上在到_jwt 续期

推荐文章

热门文章

相关标签