IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python-Excel自动化|xlrd xlwt实现按照指令复制指定行数 -> 正文阅读

[Python知识库]python-Excel自动化|xlrd xlwt实现按照指令复制指定行数

学习了编程知识之后,总是时不时脑洞大开想在word里直接写代码、写页面,一串代码敲完才发现,所谓word,是很难向我们提供一些人类高质量的编译器的。众所周知,想要用代码操作office三件套,可以利用原生的VBA进行开发,也可以利用python和相关的库实现操作。

🦄虽然有过一些vb知识,但学得不是很深,找寻大量资料后仍然不知道该怎么调用,所以觉得VBA不是很好用;另一方面是Word VBA参考资料较少,大部分是Excel VBA,所以仍然打算从Python入手进行自动化操作。


使用的库:xlrd xlwt

pip install xlrd
pip install xlwt

主要的思路:

1.读取Excel保存为xl,通过名称读取指定表格;

2.用计数器i读取行数据,用x判断新表格中的行数够了没;

3.保存文件。

import xlrd
import xlwt


#Excel文件需要为xls格式
#读取'你的文件名.xls',存为xl
xl=xlrd.open_workbook('你的文件名.xls',on_demand=True) 


#读取'Sheet1表格名'的内容,存为mysheet
mysheet = xl.sheet_by_name('Sheet1')

#可用于读取表头、具体表格数值
#print(xl.sheet_names())
#print(mysheet.cell_value(1,0))


#读取行数nrows,列数ncols
nrows = mysheet.nrows
ncols = mysheet.ncols
print('共有',str(nrows),'行,',str(ncols),'列。')

f=xlwt.Workbook()
sheet1=f.add_sheet(u'sheet1',cell_overwrite_ok=True)


'''在需要复制指定行数的表格里,选取一列用于填写每行需要重复的数量,
将这一列数据复制到txt中,使用查找替换将alt+enter转换为,
ncriminals=[需要复制的行数数组]
这个软件一开始是用于openlaw的统计,根据犯罪人数为每个犯罪嫌疑人单独创建一行,便于统计犯罪人的信息
也可用于其他需要重复行的Excel工作,比较常见的应用是需要把一行中的n个内容分别分到n行中去
有相同需求的可以先复制含内容的行、存储为txt,并将分隔符查找替换为alt+enter,
之后再使用本程序修改参数后对行进行复制,再将txt复制粘贴进对应列
'''

#计数器
i=0
x=0
repeat=0
ncriminals =[14,11,11,10,9,7,7,7]


#A【读取整个表格】
while i < len(ncriminals)-1: #i是读取的行数
   #读取第22列V列犯罪人数,转换整数类型
  n_criminals = ncriminals[i]
  
  #B------以下用于repeat的计算------
  repeat = 0 #repeat重新计数
  while repeat < n_criminals:#不够,重复做一遍

    #C-------以下为读取每一条的数据-------
    j = 0 #原表格读(i,j) ↓
    y = 0 #新表格写(x,y) √
    while j < 52:# 依次读(i,0~52)
        values = mysheet.cell_value(i,j)       
        sheet1.write(x,y,values) #写一个
        y = y+1 #右移写的位置
        j = j+1 #右移读的位置
    repeat=repeat+1
    x = x+1  
  i=i+1 #读下一行直到读完
f.save('重复指定行数.xls')

之前写的时候只是为了迎合一下群众的呼声,最终python立大功,帮忙统计了一些信息。统计结束之后几乎没有再想起来这个程序,没想到实习的时候Excel含量这么高……做表格对🦄来说可能是一种解脱吧,毕竟总比整理案卷好多了orz

简而言之发现这个程序还是挺实用的,所以写成文章再整理一下思路。

一些问题的思考:

  • 如果有显示文件可能不安全是正常的,直接打开就好。但发现有些时候里面的似乎不是纯文本,导致Excel运行耗能很大的样子,容易崩溃,小伙伴们可以复制到新的xlsx里,选择粘贴为纯文本,基本上可以解决这一问题。
  • 为什么不直接读取excel列里面的指定行数:之前试过了,一直数据类型不对,跑不了,改了很多次也不行,索性上手动了。有成功读取运行的小伙伴可以分享一下这部分的代码√

总体来说一开始写得很艰难,一方面vba试了无数次终于放弃了,另一方面python不知道用什么库比较好。开始之后的话,主要问题就是编程基础弱,经常+1-1的弄不灵清,慢慢画图改bug调试才最终搞定。整个程序除了在自动化复制Excel指定行有一定实用性之外,个人感觉比较有参考价值的是包含了xlrd和xlwt从读取文件、操作数据、保存文件的过程展示了一些变量的获取方法,虽然整个文件没有没有写成函数(老不专业了🕊),但觉得还是可以给想用Python操作Excel的小伙伴们一些参考,希望大家能喜欢。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-18 12:39:58  更:2021-08-18 12:41:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:20:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码