基于Python實(shí)現(xiàn)在控制臺(tái)查看excel的內(nèi)容
背景
最近發(fā)現(xiàn)打開電腦的excel很慢,而且使用到的場景很少,也因?yàn)閙ac自帶了預(yù)覽的功能。但是shigen
就是閑不住,想自己搞一個(gè)excel預(yù)覽軟件,于是在一番技術(shù)選型之后,我決定使用python
在控制臺(tái)顯示excel的內(nèi)容。 具體的需要的功能有:
- 查看excel的某一行信息
- 查看某個(gè)范圍的信息,信息的區(qū)間為[start,end]
- 如果以上的行、起始行、結(jié)束行這幾個(gè)參數(shù)都沒有傳遞,就分頁展示
于是帶著這樣的設(shè)計(jì),我開始了折騰。 技術(shù)選型: python
faker
pandas
rich
argparse
參數(shù)列表:
-f
文件的絕對路徑/相對路徑-s
起始列-e
結(jié)束列-r
查看的行
生成假數(shù)據(jù)
還記得之前的faker教程嗎?這次派上用場了,我打算用faker模擬生成假數(shù)據(jù),然后用pandas
寫入到excel里邊。 首先我定義了一個(gè)user
類,它的屬性有ID,名字、密碼、昵稱、電話、簡介、頭像地址、創(chuàng)建時(shí)間和更新時(shí)間。 我們先來看一下模擬生成的一條數(shù)據(jù)的效果:
from faker import Faker # 創(chuàng)建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') # 創(chuàng)建一個(gè)用戶實(shí)例 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("創(chuàng)建時(shí)間:", user.created_at) print("更新時(shí)間:", user.updated_at)
ID: 51
姓名: 陳健
密碼: @XGfngbT+3
昵稱: juan96
電話: 18827668763
自我介紹: 日本本站一個(gè)深圳.設(shè)備感覺只有以上能力特別.不同您的建設(shè)報(bào)告.
國家都是個(gè)人什么地方這種國家參加.他們進(jìn)行加入汽車個(gè)人最大方式.一點(diǎn)以上數(shù)據(jù)生活主要.
兩個(gè)一般其他對于那么新聞.一下準(zhǔn)備喜歡只要作品經(jīng)濟(jì).注冊最新更多制作名稱還有社會(huì).
自己沒有能力組織不能一定.責(zé)任準(zhǔn)備市場以后最新單位雖然.信息沒有謝謝表示.
控制重要標(biāo)準(zhǔn)的是之間.本站世界以上如何成為得到.
頭像地址: https://picsum.photos/541/475
創(chuàng)建時(shí)間: 2022-04-10 14:00:10
更新時(shí)間: 2023-08-11 00:05:08
怎么樣,數(shù)據(jù)是不是很好看。自詡一下,可以用來生成業(yè)務(wù)測試需要的基礎(chǔ)數(shù)據(jù)。
下邊是生成120條假數(shù)據(jù)。
# 生成120條用戶數(shù)據(jù) users = [User() for _ in range(120)]
現(xiàn)在,數(shù)據(jù)生成好了,就需要我們將數(shù)據(jù)導(dǎo)入到excel里邊。 首先需要構(gòu)建dataFrame
對象,直接寫入到users.xlsx
里邊,不得不說,df.to_excel
是真的很好用!
import pandas as pd # 將用戶數(shù)據(jù)轉(zhuǎn)換為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], "創(chuàng)建時(shí)間": [user.created_at for user in users], "更新時(shí)間": [user.updated_at for user in users] } df = pd.DataFrame(data) # 保存DataFrame為Excel文件 filename = "users.xlsx" df.to_excel(filename, index=False) print(f"數(shù)據(jù)已保存到文件'{filename}'")
數(shù)據(jù)已保存到文件'users.xlsx'
輸出了這樣的內(nèi)容,就代表excel寫入成功了。現(xiàn)在就有了excel的測試數(shù)據(jù)了。
書寫代碼
現(xiàn)在數(shù)據(jù)已經(jīng)有了,可以用來測試了。此處省略掉shigen
調(diào)試的漫長過程,只展示代碼的截圖,需要源代碼的伙伴可以私聊我哈。
效果驗(yàn)證
現(xiàn)在,我們的編碼過程已經(jīng)實(shí)現(xiàn)了,需要來驗(yàn)證一下功能了。
獲得代碼的幫助
(base) ~ $ excel -h usage: excel_reader.py [-h] [-f file] [-r ROW] [-s START] [-e END] [-p PAGESIZE] 在控制臺(tái)查看 Excel 文件的內(nèi)容 optional arguments: -h, --help show this help message and exit -f file, --file_path file Excel 文件路徑 -r ROW, --row ROW 第幾行 -s START, --start START 起始行 -e END, --end END 結(jié)束行 -p PAGESIZE, --pagesize PAGESIZE 每頁顯示的行數(shù)
獲得第10行
excel -f ~/temp/python/推文文章/users.xlsx -r 10
獲得10-12行的內(nèi)容
內(nèi)容有點(diǎn)多,僅展示兩條,看看效果
excel -f ~/temp/python/推文文章/users.xlsx -s 10 -e 12
分頁顯示
這也是這個(gè)功能的重頭戲,直接分頁顯示,不需要其它的額外參數(shù)
excel -f ~/temp/python/推文文章/users.xlsx
看到了提示嗎,輸入命令:(n-下一頁, p-上一頁, q-退出),我們來試試。
這就是下一頁的實(shí)現(xiàn)了。q
直接退出,我就不再演示了。
以上就是基于Python實(shí)現(xiàn)在控制臺(tái)查看excel的內(nèi)容的詳細(xì)內(nèi)容,更多關(guān)于Python查看excel的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何使用 Pylint 來規(guī)范 Python 代碼風(fēng)格(來自IBM)
本文通過詳細(xì)的理論介紹和簡單易懂的實(shí)例全面介紹了 Python 代碼分析工具 Pylint。相信讀者看完后一定可以輕松地將 Pylint 運(yùn)用到自己的開發(fā)工程中2018-04-04Python實(shí)現(xiàn)暴力破解有密碼的zip文件的方法
這篇文章主要介紹了Python實(shí)現(xiàn)暴力破解有密碼的zip文件的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03python單星號(hào)(*)與雙星號(hào)(**)使用示例demo
這篇文章詳細(xì)介紹了Python中*與**操作符的使用場景及注意事項(xiàng),并通過示例代碼展示了它們在函數(shù)形參和實(shí)參、序列解包以及函數(shù)參數(shù)順序中的應(yīng)用,需要的朋友可以參考下2024-12-12python3.5基于TCP實(shí)現(xiàn)文件傳輸
這篇文章主要為大家詳細(xì)介紹了python3.5基于TCP實(shí)現(xiàn)文件傳輸?shù)拇a,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07python實(shí)現(xiàn)解數(shù)獨(dú)程序代碼
最近在帶孩子學(xué)習(xí)數(shù)獨(dú),職業(yè)使然,就上網(wǎng)搜了下相關(guān)程序的解法,這里分享給大家,希望對大家學(xué)習(xí)python有所幫助2017-04-04