告別單調工作系列——利用python再次拯救漂亮妹子
python20180815.jpg
上一篇中「拯救」了漂亮妹子之後,原本以為事情告一段落,哪知道......
起因
記得幫妹子搞定自動提交表單之後的第三天,妹子端著奶茶樂呵呵的來找我,和我一番暢談理想,又指點江山之後,終於切入了正題。
大致的意思就是透過excel自動提交表單資料你幫我搞定了,你好厲害,現在整理excel的工作我也不是很想做,你有沒有辦法幫我搞定,搞定之後不會虧待你的,奶茶一定雙手奉上。
碰到這樣的事情其實我的內心是拒絕的,這明顯有點‘貪得無厭’,不知道什麼叫見好就收嗎?
可是,誰叫人家妹子長得漂亮呢,嘴巴又甜,被她這麼忽悠了幾下,習慣性的開始調研起需求來了,哎,這職業習慣得改改。
經過
聊了十幾分鍾之後,大致瞭解了需求,其實就是有幾個部門每天會發來固定的excel,她需要根據一定的要求整理彙總,有問題的資料聯絡對應的人去處理,沒有問題的資料再錄入到系統。
要了excel模板和具體的整理規則之後,漂亮妹子樂呵呵的走了,我有點後悔,又要犧牲自己的下班時間了,哎,好人難做啊。
理了下思路,其實解決這個需求不是很難。
首先先約定好規則,包括excel的命名,存放路徑,excel格式等。其中excel命名和格式已經是固定的,不用操太多心。
但存放路徑不定,基本上都是透過郵件來溝通的,原本想去遍歷郵件去獲取附件的,但考慮到無法判斷哪份excel是最終版,所以這一步就算了,讓業務自行判斷後放到統一的路徑下。
接下來就是遍歷指定路徑下的excel,根據業務給的資料規則進行整合,整合之後生成一個目標excel,一份是正確的資料,還一份是異常資料。
所用到的python模板基本上也是自帶的,加上操作Excel的xlrd
,xlwt
。
python操作excel
面對這樣的需求,正好也讓自己複習鞏固下python操作excel的幾個模板,記錄下來,供大家參考。
操作excel我主要用xlrd
,xlwt
,XlsxWriter
這三個模組,基本可以解決我遇到的所有需求。
xlrd
模組只支援讀取excel,不管是.xls
的還是.xlsx
的,可以看個簡單的demo:
import xlrd rd = xlrd.open_workbook("test.xls") #讀取檔案sheets = rd.sheet_names() #獲取所有sheet名table = rd.sheet_by_name("sheet1") #透過sheet名獲取名為 sheet1 的表#遍歷excel,列印出第一列for i in range(table.nrows): print(excelData.col_values(0)[i])
xlwt
和XlsxWriter
模組,只支援寫excel操作,兩者各有優缺點,相對來說XlsxWriter
不管從功能上還是效能上都略勝與xlwt
,尤其是在支援大檔案寫入方面,如果資料量非常大,可以啟用constant memory
模式,這是一種順序寫入模式,得到一行資料就立刻寫入一行,而不會把所有的資料都保持在記憶體中。
網上有一篇,大家可以看下,講的比較詳細,各模組的優缺點。
image
至於寫法,其實兩者差不多,直接看下官方文件即可,這裡以xlwt
舉例:
import xlwt# 建立一個workbook 設定編碼workbook = xlwt.Workbook(encoding = 'utf-8')# 建立一個worksheetworksheet = workbook.add_sheet('Worksheet1')# 寫入excel# 引數對應 行, 列, 值worksheet.write(1,0, label = 'test') style = xlwt.XFStyle() # 初始化樣式font = xlwt.Font() # 為樣式建立字型font.name = 'Times New Roman' font.bold = True # 黑體font.underline = True # 下劃線font.italic = True # 斜體字style.font = font # 設定樣式worksheet.write(2, 0, 'Unformatted value') # 不帶樣式的寫入worksheet.write(3, 0, 'Formatted value', style) # 帶樣式的寫入# 設定單元格寬度worksheet.col(0).width = 3333# 輸入日期style = xlwt.XFStyle() style.num_format_str = 'M/D/YY' # Other options: D-MMM-YY, D-MMM, MMM-YY, h:mm, h:mm:ss, h:mm, h:mm:ss, M/D/YY h:mm, mm:ss, [h]:mm:ss, mm:ss.0worksheet.write(4, 0, datetime.datetime.now(), style)#新增公式worksheet.write(5, 0, 5) # Outputs 5worksheet.write(5, 1, 2) # Outputs 2worksheet.write(6, 0, xlwt.Formula('A5*B5')) worksheet.write(1, 1, xlwt.Formula('SUM(A5,B5)')) #新增超連結worksheet.write(7, 0, xlwt.Formula('HYPERLINK("";"Google")'))# 儲存workbook.save('test.xls')
後記
終於利用下班時間將這個需求搞定了,妹子很開心,但隱隱覺得沒有達到她想要的,也許過幾天,妹子又會樂呵呵的端著奶茶來找我了......
作者:Bug生活2048
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4328/viewspace-2812445/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何拯救工作列
- 利用Python實現漂亮的Django Markdown富文字app外掛PythonDjangoAPP
- 告別單調,Django後臺主頁改造 - 使用AdminLTE元件Django元件
- 告別指令碼小子系列丨JAVA安全(6)——反序列化利用鏈(上)指令碼Java
- 用Python拯救鑑黃師Python
- Python驗證碼識別:利用pytesser識別簡單圖形驗證碼Python
- 利用Python科學計算處理物理問題(和物理告個別)Python
- 利用閃回拯救我們的資料(五)
- 利用閃回拯救我們的資料(三)
- 利用閃回拯救我們的資料(四)
- 利用網際網路找工作簡單麼
- 如何利用 revealjs 快速寫出漂亮的 PPTJS
- Python3--妹子圖實戰Python
- 利用jsdoc為vue專案生成漂亮的文件JSVue
- python利用Tesseract識別驗證碼Python
- Python單元測試框架pytest常用測試報告型別Python框架測試報告型別
- 告別程式設計5年再次迴歸,我注意到很多變化程式設計
- Python分析3月政府工作報告Python
- 降薪!調崗!憑什麼Python再次成為2020年新貴!Python
- python中單執行緒重複利用Python執行緒
- HackerRank 開發者調查報告:Python 最受歡迎Python
- flutter-簡單實現找妹子自定義viewFlutterView
- 【工作篇】再次熟悉 SpringMVC 引數繫結SpringMVC
- 教你用Python爬取妹子圖APPPythonAPP
- 利用python進行資料分析之準備工作(1)Python
- 單調棧/單調佇列佇列
- 利用opencv 做一個簡單的人臉識別OpenCV
- python常識系列07-->python利用xlwt寫入excel檔案PythonExcel
- 利用python進行識別相似圖片(二)Python
- 你喜歡約IT妹子還是夜店妹子?
- 工作績效資料、資訊和報告的區別
- 使用Pyenv拯救Ubuntu混亂的Python版本UbuntuPython
- 黑客利用Windows BlueKeep挖礦,RDP攻擊再次來襲黑客Windows
- 世界環境日:我們如何利用人工智慧拯救地球?人工智慧
- 單調棧和單調佇列佇列
- 單調棧 和 單調佇列佇列
- OCR表單識別自主建模簡化表單錄入工作
- 單機百萬連線調優和Netty應用級別調優Netty