当前位置: 首页 > news >正文

如何在控制台查看excel内容

背景

最近发现打开电脑的excel很慢,而且使用到的场景很少,也因为mac自带了预览的功能。但是shigen就是闲不住,想自己搞一个excel预览软件,于是在一番技术选型之后,我决定使用python在控制台显示excel的内容。
具体的需要的功能有:

  1. 查看excel的某一行信息
  2. 查看某个范围的信息,信息的区间为[start,end]
  3. 如果以上的行、起始行、结束行这几个参数都没有传递,就分页展示

于是带着这样的设计,我开始了折腾。
技术选型python faker pandas rich argparse
参数列表:

  • -f 文件的绝对路径/相对路径
  • -s 起始列
  • -e 结束列
  • -r 查看的行

生成假数据

还记得之前的faker教程吗?这次派上用场了,我打算用faker模拟生成假数据,然后用pandas写入到excel里边。
首先我定义了一个user类,它的属性有ID,名字、密码、昵称、电话、简介、头像地址、创建时间和更新时间。
我们先来看一下模拟生成的一条数据的效果:

from faker import Faker# 创建Faker对象
fake = Faker('zh_CN')class User:def __init__(self):self.id = fake.random_int(min=1, max=1000)self.name = fake.name()self.password = fake.password()self.nickname = fake.user_name()self.phone = fake.phone_number()self.introduction = fake.text(max_nb_chars=200)self.avatar_url = fake.image_url(width=None, height=None)self.created_at = fake.date_time_this_decade().strftime('%Y-%m-%d %H:%M:%S')self.updated_at = fake.date_time_this_month().strftime('%Y-%m-%d %H:%M:%S')# 创建一个用户实例
user = User()# 打印用户属性
print("ID:", user.id)
print("姓名:", user.name)
print("密码:", user.password)
print("昵称:", user.nickname)
print("电话:", user.phone)
print("自我介绍:", user.introduction)
print("头像地址:", user.avatar_url)
print("创建时间:", user.created_at)
print("更新时间:", user.updated_at)
ID: 51
姓名: 陈健
密码: @XGfngbT+3
昵称: juan96
电话: 18827668763
自我介绍: 日本本站一个深圳.设备感觉只有以上能力特别.不同您的建设报告.
国家都是个人什么地方这种国家参加.他们进行加入汽车个人最大方式.一点以上数据生活主要.
两个一般其他对于那么新闻.一下准备喜欢只要作品经济.注册最新更多制作名称还有社会.
自己没有能力组织不能一定.责任准备市场以后最新单位虽然.信息没有谢谢表示.
控制重要标准的是之间.本站世界以上如何成为得到.
头像地址: https://picsum.photos/541/475
创建时间: 2022-04-10 14:00:10
更新时间: 2023-08-11 00:05:08

怎么样,数据是不是很好看。自诩一下,可以用来生成业务测试需要的基础数据。

下边是生成120条假数据。

# 生成120条用户数据
users = [User() for _ in range(120)]

现在,数据生成好了,就需要我们将数据导入到excel里边。
首先需要构建dataFrame对象,直接写入到users.xlsx里边,不得不说,df.to_excel是真的很好用!

import pandas as pd# 将用户数据转换为DataFrame
data = {"ID": [user.id for user in users],"姓名": [user.name for user in users],"密码": [user.password for user in users],"昵称": [user.nickname for user in users],"电话": [user.phone for user in users],"自我介绍": [user.introduction for user in users],"头像地址": [user.avatar_url for user in users],"创建时间": [user.created_at for user in users],"更新时间": [user.updated_at for user in users]
}
df = pd.DataFrame(data)# 保存DataFrame为Excel文件
filename = "users.xlsx"
df.to_excel(filename, index=False)print(f"数据已保存到文件'{filename}'")
数据已保存到文件'users.xlsx'

输出了这样的内容,就代表excel写入成功了。现在就有了excel的测试数据了。

书写代码

现在数据已经有了,可以用来测试了。此处省略掉shigen调试的漫长过程,只展示代码的截图,需要源代码的伙伴可以私聊我哈。

效果验证

现在,我们的编码过程已经实现了,需要来验证一下功能了。

获得代码的帮助

(base) ~  $ excel -h
usage: excel_reader.py [-h] [-f file] [-r ROW] [-s START] [-e END] [-p PAGESIZE]在控制台查看 Excel 文件的内容optional arguments:-h, --help            show this help message and exit-f file, --file_path fileExcel 文件路径-r ROW, --row ROW     第几行-s START, --start START起始行-e END, --end END     结束行-p PAGESIZE, --pagesize PAGESIZE每页显示的行数

获得第10行

excel -f ~/temp/python/推文文章/users.xlsx -r 10

获得10-12行的内容

内容有点多,仅展示两条,看看效果

excel -f ~/temp/python/推文文章/users.xlsx -s 10 -e 12

分页显示

这也是这个功能的重头戏,直接分页显示,不需要其它的额外参数

excel -f ~/temp/python/推文文章/users.xlsx

看到了提示吗,输入命令:(n-下一页, p-上一页, q-退出),我们来试试。


这就是下一页的实现了。q直接退出,我就不再演示了。

后记

这就是shigen花了两小时做出来的直接在终端读取excel内容的功能,期待能实实在在地提升日常的效率。同时代码也存在一些性能可以优化的,但是目前的知识技能有限,只能先做成这样的了。
我也越发的相信:学技术,先广度再深度这个观点了,广度:让我有了足够高的角度来看清楚问题的本质,接着技术选型和实现;深度:让我挖掘其中的底层原理,不断的优化程序的性能。

以上就是shigen的分享了,期待你的参与和交流。

shigen一起,每天不一样。

相关文章:

如何在控制台查看excel内容

背景 最近发现打开电脑的excel很慢,而且使用到的场景很少,也因为mac自带了预览的功能。但是shigen就是闲不住,想自己搞一个excel预览软件,于是在一番技术选型之后,我决定使用python在控制台显示excel的内容。 具体的需…...

Echarts、js编写“中国主要城市空气质量对比”散点图 【亲测】

本次实验通过可视化工具Echarts来对全国主要城市的&#xff30;&#xff2d;2.5的值进行直观的展示&#xff0c;使人们可以快速的发现信息的关键点&#xff0c;从而对各个城市的空气质量情况有直观的了解。 先看效果 上代码&#xff1a; <!DOCTYPE html> <html>&…...

linux不分区直接在文件系统根上开swap

root下&#xff0c;直接创swapfile dd if/dev/zero of/swapfile bs1M count8192然后 mkswap swapfile swapon swapfile修改fstab # /etc/fstab: static file system information. # # Use blkid to print the universally unique identifier for a # device; this may be us…...

React请求机制优化思路 | 京东云技术团队

说起数据加载的机制&#xff0c;有一个绕不开的话题就是前端性能&#xff0c;很多电商门户的首页其实都会做一些垂直的定制优化&#xff0c;比如让请求在页面最早加载&#xff0c;或者在前一个页面就进行预加载等等。随着react18的发布&#xff0c;请求机制这一块也是被不断谈起…...

CompletableFuture总结和实践

CompletableFuture被设计在Java中进行异步编程。异步编程意味着在主线程之外创建一个独立的线程&#xff0c;与主线程分隔开&#xff0c;并在上面运行一个非阻塞的任务&#xff0c;然后通知主线程进展&#xff0c;成功或者失败。 一、概述 1.CompletableFuture和Future的区别&…...

使用Nginx调用网关,然后网关调用其他微服务

问题前提&#xff1a;目前我的项目是已经搭建了网关根据访问路径路由到微服务&#xff0c;然后现在我使用了Nginx将静态资源都放在了Nginx中&#xff0c;然后我后端定义了一个接口访问一个html页面&#xff0c;但是html页面要用到静态资源&#xff0c;这个静态资源在我的后端是…...

windows搭建WebDAV服务,并内网穿透公网访问【无公网IP】

windows搭建WebDAV服务&#xff0c;并内网穿透公网访问【无公网IP】 文章目录 windows搭建WebDAV服务&#xff0c;并内网穿透公网访问【无公网IP】1. 安装IIS必要WebDav组件2. 客户端测试3. cpolar内网穿透3.1 打开Web-UI管理界面3.2 创建隧道3.3 查看在线隧道列表3.4 浏览器访…...

PAT 1097 Deduplication on a Linked List

个人学习记录&#xff0c;代码难免不尽人意 Given a singly linked list L with integer keys, you are supposed to remove the nodes with duplicated absolute values of the keys. That is, for each value K, only the first node of which the value or absolute value o…...

Flink 数据集成服务在小红书的降本增效实践

摘要&#xff1a;本文整理自实时引擎研发工程师袁奎&#xff0c;在 Flink Forward Asia 2022 数据集成专场的分享。本篇内容主要分为四个部分&#xff1a; 小红书实时服务降本增效背景Flink 与在离线混部实践实践过程中遇到的问题及解决方案未来展望 点击查看原文视频 & 演…...

jellyfin使用ipv6+DDNS实现外网访问

前言 原本使用frp的方案进行外网访问jellyfin&#xff0c;但是阿里云的轻量服务器的带宽只有5M&#xff0c;只能支持看1080p的视频&#xff0c;看4K有点吃力&#xff0c;为了有更好的观影体验&#xff0c;选择ipv6DDNS的方式实现外网访问&#xff0c;此方案能跑满群晖的上行带宽…...

Codeforces EDU 151 Div.2

文章目录 A. Forbidden IntegerB. Come TogetherC. Strong PasswordD. Rating SystemE. Boxes and Balls A. Forbidden Integer Problem - A - Codeforces 给定整数n&#xff0c;从1~k中选择除了x的数&#xff0c;使这些数之和为n&#xff0c;每个数可以选择无限次 爆搜&…...

V2board缓存投毒漏洞复现

1.什么是缓存投毒 缓存投毒&#xff08;Cache poisoning&#xff09;&#xff0c;通常也称为域名系统投毒&#xff08;domain name system poisoning&#xff09;&#xff0c;或DNS缓存投毒&#xff08;DNS cache poisoning&#xff09;。它是利用虚假Internet地址替换掉域名系…...

2023面试八股文 ——Java基础知识

Java基础知识 一.Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性&#xff1f;原理是什么Java语言有哪些特点什么是字节码&#xff1f;采用字节码的大好处是什么什么是Java程序的主类&#xff1f;应用程序和小程序的主类有何不同&#xff1f…...

在linux系统中修改mysql数据目录

目录 1.查看mysql默认存储路径2.停止mysql服务3.移动或复制原数据目录4.修改配置文件5.修改启动文件6.配置AppArmor访问控制规则7.重启apparmor服务8.启动mysql 1.查看mysql默认存储路径 在/etc/mysql/mysql.conf.d/mysqld.cnf中的datadir配置项。 datadir /var/lib/mysql2…...

ORB-SLAM2学习笔记9之图像帧Frame

先占坑&#xff0c;明天再完善… 文章目录 0 引言1 Frame类1.1 成员函数1.2 成员变量 2 Frame类的用途 0 引言 ORB-SLAM2学习笔记8详细了解了图像特征点提取和描述子的生成&#xff0c;本文在此基础上&#xff0c;继续学习ORB-SLAM2中的图像帧&#xff0c;也就是Frame类&#…...

面试热题(不同的二分搜索树)

给你一个整数 n &#xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种&#xff1f;返回满足题意的二叉搜索树的种数。 经典的面试题&#xff0c;这部分涉及了组合数学中的卡特兰数&#xff0c;如果对其不清楚的同学可以去看我以前的博客卡特兰数 …...

MybatisPlus整合p6spy组件SQL分析

目录 p6spy java为什么需要 如何使用 其他配置 p6spy p6spy是一个开源项目&#xff0c;通常使用它来跟踪数据库操作&#xff0c;查看程序运行过程中执行的sql语句。 p6spy将应用的数据源给劫持了&#xff0c;应用操作数据库其实在调用p6spy的数据源&#xff0c;p6spy劫持到…...

项目实战 — 博客系统③ {功能实现}

目录 一、编写注册功能 &#x1f345; 1、使用ajax构造请求&#xff08;前端&#xff09; &#x1f345; 2、统一处理 &#x1f384; 统一对象处理 &#x1f384; 保底统一返回处理 &#x1f384; 统一异常处理 &#x1f345; 3、处理请求 二、编写登录功能 &#x1f345; …...

卷积神经网络全解:(AlexNet/VGG/ GoogLeNet/LeNet/ResNet/卷积/激活/池化/全连接)、现代卷积神经网络、经典卷积神经网络

CNN&#xff0c;卷积神经网络&#xff0c;Convolution Neural Network 卷积计算公式&#xff1a;N &#xff08;W-F2p&#xff09;/s1 这个公式每次都得看看&#xff0c;不能忘 1 经典网络 按照时间顺序 1.1 LeNet LeNet是 Yann LeCun在1998年提出&#xff0c;用于解决手…...

WDM 模型(Windows Driver Model)简述

WDM 模型(Windows Driver Model) 是微软公司为 Windows98 和 Windows2000 的驱动程序设计的一种架构&#xff0c;在 WDM 驱动程序模型中&#xff0c;每个硬件设备 至少有两个驱动程序。其中一个为功能驱动程序&#xff0c;它了解硬件工作的所有细节&#xff0c;负 责初始化 …...

【算法刷题之数组篇(1)】

目录 1.leetcode-59. 螺旋矩阵 II&#xff08;题2.题3相当于二分变形&#xff09;2.leetcode-33. 搜索旋转排序数组3.leetcode-81. 搜索旋转排序数组 II(与题目2对比理解)&#xff08;题4和题5都是排序双指针&#xff09;4.leetcode-15. 三数之和5.leetcode-18. 四数之和6.leet…...

【数据挖掘】使用 Python 分析公共数据【01/10】

一、说明 本文讨论了如何使用 Python 使用 Pandas 库分析官方 COVID-19 病例数据。您将看到如何从实际数据集中收集见解&#xff0c;发现乍一看可能不那么明显的信息。特别是&#xff0c;本文中提供的示例说明了如何获取有关疾病在不同国家/地区传播速度的信息。 二、准备您的…...

html怎么插入视频?视频如何插入页面

html怎么插入视频&#xff1f;视频如何插入页面 HTML 的功能强大&#xff0c;基本所有的静态效果都可以在此轻松呈现&#xff0c;各种视频网站内有大量的视频内容&#xff0c;本篇文章教你如何在 html 中插入视频 代码如下&#xff1a; <!DOCTYPE html> <html> …...

游戏服务端性能测试

导语&#xff1a;近期经历了一系列的性能测试&#xff0c;涵盖了Web服务器和游戏服务器的领域。在这篇文章中&#xff0c;我将会对游戏服务端所做的测试进行详细整理和记录。需要注意的是&#xff0c;本文着重于记录&#xff0c;而并非深入的编程讨论。在这里&#xff0c;我将与…...

【使用Zookeeper当作注册中心】自己定制负载均衡常见策略

自己定制负载均衡常见策略 一、前言随机&#xff08;Random&#xff09;策略的实现轮询&#xff08;Round Robin&#xff09;策略的实现哈希&#xff08;Hash&#xff09;策略 一、前言 大伙肯定知道&#xff0c;在分布式开发中&#xff0c;目前使用较多的注册中心有以下几个&…...

设计模式十七:迭代器模式(Iterator Pattern)

迭代器模式&#xff08;Iterator Pattern&#xff09;是一种行为型设计模式&#xff0c;它提供了一种访问聚合对象&#xff08;例如列表、集合、数组等&#xff09;中各个元素的方法&#xff0c;而无需暴露其内部表示。迭代器模式将遍历元素和访问元素的责任分离开来&#xff0…...

Python制作爱心并打包成手机端可执行文件

前言 本文是想要将python代码打包成在手机上能执行的文件 尝试了几个库&#xff0c; 有这也那样的限制&#xff0c;最终还是选了BeeWare 环境&#xff1a;python3.7.x 开始 找到打包有相关工具os-android-apk-builder&#xff0c;buildozer&#xff0c;cx_Freeze&#xff…...

使用docker-compose.yml快速搭建开发、部署环境(nginx、tomcat、mysql、jar包、各种程序)以及多容器通信和统一配置

目录 docker-compose语法&#xff08;更多说明可查看下面代码&#xff09;imagehostnamecontainer_namevolumesnetworks yml文件的使用启动停止 开发环境&#xff08;这里以python为例&#xff09;部署环境nginxmysqltomcatjar包打包后的可执行程序 常见问题与解决方案多个容器…...

管理类联考——逻辑——真题篇——按知识分类——汇总篇——二、论证逻辑——支持加强——第三节——分类3——类比题干支持

文章目录 第三节 支持加强-分类3-类比题干支持真题(2017-28)-支持加强-正面支持-表达“确实如此”真题(2017-36)-支持加强-正面支持-表达“确实如此”真题(2017-39)-支持加强-正面支持-方法有效或方法可行,但多半不选择方法无恶果真题(2017-50)-支持加强真题(2018-2…...

搜索旋转排序数组

整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nums[1], …, …...

做做网站/企业网站优化方案案例

我们把黎曼积分推广一下.黎曼积分里要求对区间$[a,b]$进行任意的有限分割.我们看看对区间$[a,b]$进行任意的分割(有限或无限的分割)会发生什么事.更具体地叙述如下&#xff1a; 设$f$是闭区间$[a,b]$上的有界函数(之所以规定有界&#xff0c;是因为$[a,b]$上的无界函数不是黎曼…...

网站建设顾问/慧生活798app下载

大家应该知道python中print之后是默认换行的&#xff0c; 那如何我们不想换行&#xff0c;且不想讲输出内容用一个print函数输出时&#xff0c;就需要改变print默认换行的属性&#xff0c; 方法如下&#xff1a; print(contents, end!#$%^&*)end就表示print将如何结束&…...

html怎么做网站版块/2022新闻热点事件简短30条

含义&#xff1a; 把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数&#xff0c; 并且返回接受余下的参数且返回结果的新函数的技术。作用&#xff1a; 惰性求值实例&#xff1a; add(1,2,3)>add(1)(2)(3) function curry(fn, args []){let len …...

C 网站开发招聘/网页开发需要学什么

ElasticSearch NEST笔记 1. 什么是ElasticSearch? ElasticSearch is a powerful open source search and analytics engine that makes data easy to explore. 可以简单理解成索引加检索的工具&#xff0c;当然它功能多于此。ElasticSearch分为服务端与客户端&#xff0c;服…...

flash做网站的论文/搜索热度查询

TMaMba 2014/01/13 17:010x00 前言在渗透测试和安全扫描工作中&#xff0c;发现越来越多站点部署了应用防护系统或异常流量监控系统&#xff0c;其中包括&#xff1a;WEB应用防火墙&#xff08;软件WAF、硬件WAF、云WAF&#xff09;、入侵检测系统、入侵防御系统、访问监控系统…...

微信公众平台开发代理/seo实战

集合(set)类型也是用来保存多个的字符串元素,但和列表类型不一样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素。集合user:1:follow包含着"it"、"music"、"his"、"sports"四个元素。Redis除…...