久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Python操作Excel文件(0):盤(pán)點(diǎn) | silaoA的博客

 看見(jiàn)就非常 2022-02-24

python的一大優(yōu)勢(shì)是生態(tài)豐富,,各種想要的庫(kù)都有人做好了,,省掉造輪子的成本。對(duì)于Excel文件操作,,也不例外,。在Python中操作Excel有2條思路。

  1. 使用pywin32,,內(nèi)含win32com等多個(gè)包,,使用微軟獨(dú)門(mén)的COM接口技術(shù)去操控系統(tǒng)中的Excel軟件。沿著這條思路,,好處是除了Excel軟件,,可以操控系統(tǒng)中任意支持COM接口的軟件,微軟全家桶是必然在列滴,,其他就難說(shuō)了,;劣勢(shì)就是COM接口技術(shù)比較老舊了,僅在Windows平臺(tái)中使用,而且系統(tǒng)中必須已經(jīng)安裝好Excel軟件,。
  2. 使用讀寫(xiě)表格文件的庫(kù),,如xlrd/xlwt/xlutilsopenpyxl,、pyexcel,、XlsxWriter等,這些庫(kù)封裝了對(duì)Excel文件的讀寫(xiě)操作的函數(shù),。
    在Python中操作Excel文件在Python中操作Excel文件

本文對(duì)第2條思路中常見(jiàn)的庫(kù)進(jìn)行簡(jiǎn)單評(píng)述與總結(jié),。

0x00 xlrd/xlwt/xlutils

簡(jiǎn)介

這3個(gè)必須捆綁到一起說(shuō)。Simplistix公司開(kāi)發(fā)了這3個(gè)庫(kù),,還提供了一個(gè)教程Working with Excel files in Python,,教程是2009年出的,原網(wǎng)站內(nèi)容基本都清空了,,項(xiàng)目遷移到http://www.,,教程遷移到https://github.com/python-excel/tutorial

  • xlrd用于讀取Excel文件表格中的數(shù)據(jù),,rd含義就是read,,同時(shí)支持xls和xlsx兩種格式標(biāo)準(zhǔn)
  • xlwt用于將數(shù)據(jù)寫(xiě)入Excel文件,,wt含義就是write,,僅支持xls格式標(biāo)準(zhǔn)
  • xlutils依賴(lài)于xlrdxlwt,,提供讀寫(xiě)相關(guān)支持的工具集,,比如類(lèi)型轉(zhuǎn)換、workbook復(fù)制等,。

吐槽一句,,這3個(gè)東西原本應(yīng)該做到一起的,搞成3個(gè)麻煩,。

xls和xlsx格式

注意文件后綴名跟格式標(biāo)準(zhǔn)沒(méi)關(guān)系,,不是說(shuō)文件擴(kuò)展名用xlsx就一定是xlsx格式、用xls就一定是xls格式,,而是兩種格式標(biāo)準(zhǔn)文件在數(shù)據(jù)組織方式,、數(shù)據(jù)量支持等多方面就存在本質(zhì)差異。微軟自O(shè)ffice 2007系列之后開(kāi)始廣泛支持xlsx格式標(biāo)準(zhǔn),,使用xls格式標(biāo)準(zhǔn)的文件逐漸減少。
xls是微軟私有的文件格式標(biāo)準(zhǔn),,以二進(jìn)制方式直接保存文件,,最大支持行數(shù)65536行、列數(shù)256列,而xlsx是基于Office Open XML標(biāo)準(zhǔn)的格式,,實(shí)質(zhì)是以zip壓縮包保存文件,,只是擴(kuò)展名使用了xlsx,可以用解壓軟件查看壓縮包內(nèi)容,,最大支持1048576行,、16384列。

主要特性

xlrd/xlwt是以非常原始的方式進(jìn)行Excel表格數(shù)據(jù)讀寫(xiě),,可以類(lèi)比為CPU編程的匯編語(yǔ)言,、Web開(kāi)發(fā)中的JavaScript,好處嘛就是運(yùn)行速度相對(duì)快,,缺點(diǎn)就是代碼要寫(xiě)得比較啰嗦,。xlrd/xlwt實(shí)現(xiàn)了Book(工作簿)、Sheet(表單),、Cell(單元格)多級(jí)對(duì)象,,并將單元格分為文本(Text)、數(shù)字(Number),、日期(Date),、布爾(Boolean)、錯(cuò)誤(Error),、空白(Empty/Blank)幾種類(lèi)型,。比較蛋疼的是,xlrd中的Book和xlwt中Book并非是同一類(lèi)型,,在Book對(duì)象中獲取Sheet對(duì)象的方法也不同,,正因?yàn)槿绱耍判枰?code>xlutils做中間橋梁進(jìn)行轉(zhuǎn)換,。

xlrd/xlwt對(duì)Excel文件支持較好,,除了常規(guī)數(shù)據(jù)讀寫(xiě),還支持單元格字體,、邊框線(xiàn)風(fēng)格,,還支持寫(xiě)入表格公式,但實(shí)際使用表明大量公式不支持,,讀入表格只能得到公式值,,另外不支持圖表繪制。

在數(shù)據(jù)訪(fǎng)問(wèn)方面,,xlrd/xlwt可以整行/列操作,,單元格索引則完全依賴(lài)行列序號(hào),但提供了函數(shù)用于行列序號(hào)與Excel風(fēng)格單元格地址相互轉(zhuǎn)換,。

xlrd/xlwt/xlutils對(duì)外暴露的類(lèi)型,、方法、函數(shù)中規(guī)中矩,也沒(méi)有什么花式操作,,用戶(hù)只了解最常用的小部分也能完成工作,。

0x01 openpyxl

簡(jiǎn)介

openpyxl是由一群志愿者在業(yè)余時(shí)間開(kāi)發(fā)維護(hù)的開(kāi)源項(xiàng)目,用于在Python中原生地讀寫(xiě)Excel xlsx/xlsm/xltx/xltm格式文件,,項(xiàng)目地址 http:///openpyxl/openpyxl,。openpyxl對(duì)Excel文件功能支持十分完備:除了常規(guī)數(shù)據(jù)讀寫(xiě),還支持單元格合并/分拆,、插入圖片,、(有限的)圖表繪制、公式寫(xiě)入/解析,、單元格注釋,、只讀/只寫(xiě)模式、單元格字體/對(duì)齊/填充/邊框線(xiàn)風(fēng)格,、條件格式,、數(shù)據(jù)有效性等。

主要特性

在數(shù)據(jù)訪(fǎng)問(wèn)方面,,openpyxl支持整行/列操作,,單元格索引既可以用行列序號(hào),也可以用Excel風(fēng)格單元格地址,,內(nèi)部自動(dòng)轉(zhuǎn)換無(wú)需用戶(hù)操心,。

Excel功能支持方面,openpyxl堪稱(chēng)完美,,但最大痛點(diǎn)是不支持xls格式,,而目前實(shí)際仍有不少xls格式文件在應(yīng)用中。

0x02 XlsxWriter

簡(jiǎn)介

XlsxWriter是用于創(chuàng)建Excel xlsx格式文件的包,,僅支持寫(xiě)操作,,不支持xls格式,非常適合于生成新表格文件的應(yīng)用場(chǎng)合,,對(duì)于讀出表格數(shù)據(jù)進(jìn)行分析則無(wú)能為力,。XlsxWriter開(kāi)源,項(xiàng)目地址為 https://github.com/jmcnamara/XlsxWriter,。

在Excel功能支持方面十分完備,,XlsxWriter支持單元格合并/分拆、圖片插入,、圖表繪制,、公式、單元格注釋,、單元格數(shù)字格式/字體/對(duì)齊/填充/邊框線(xiàn)風(fēng)格,、條件格式,、數(shù)據(jù)有效性,、文本框插入,、VBA等,還能與pandas集成進(jìn)行數(shù)據(jù)分析,,運(yùn)行效率也很高,。

主要特性

XlsxWriter在寫(xiě)入數(shù)據(jù)方面設(shè)計(jì)很有特點(diǎn),對(duì)外只暴露1個(gè)write方法,,內(nèi)部則根據(jù)要寫(xiě)入的數(shù)據(jù)格式(Excel單元格所規(guī)定的數(shù)字,、字符串、公式,、空白,、日期時(shí)間、鏈接等),,回調(diào)相應(yīng)的handler,,同時(shí)允許用戶(hù)添加自定義handler,在匹配自定義數(shù)據(jù)格式時(shí)自動(dòng)回調(diào),。這樣設(shè)計(jì)僅需掌握1個(gè)write方法便可搞定所有的寫(xiě)操作,,簡(jiǎn)潔明了,保持靈活性同時(shí)不失統(tǒng)一性,。

在數(shù)據(jù)訪(fǎng)問(wèn)方面,,XlsxWriter支持整行/列操作,單元格索引既可以用行列序號(hào),,也可以用Excel風(fēng)格單元格地址,,內(nèi)部自動(dòng)轉(zhuǎn)換無(wú)需用戶(hù)操心。

XlsxWriter對(duì)外暴露的類(lèi)型,、方法,、函數(shù)相對(duì)較為簡(jiǎn)潔,數(shù)量也不多,,風(fēng)格也很統(tǒng)一,,用戶(hù)上手十分容易,提供的文檔和樣例十分豐富,。

0x03 pyexcel

簡(jiǎn)介

與上述幾個(gè)庫(kù)所不同的是,,pyexcel是一個(gè)包裝庫(kù),底層依賴(lài)實(shí)際是xlrd/xlwt,、openpyxl,、XlsxWriterlxml等,,經(jīng)過(guò)封裝后對(duì)外提供一套API進(jìn)行Excel文件讀寫(xiě),,可類(lèi)比為CPU編程的C語(yǔ)言,、Web開(kāi)發(fā)中的jQuery等,好處就是簡(jiǎn)化了代碼編寫(xiě)過(guò)程,,缺點(diǎn)就是運(yùn)行效率降低了,。pyexcel開(kāi)源,項(xiàng)目地址為https://github.com/pyexcel/pyexcel,。

除了支持Excel的xls,、xlsx格式,還支持csv,、tsv文本格式,,以及sql數(shù)據(jù)庫(kù)表、Python內(nèi)置的dict/嵌套list數(shù)據(jù)類(lèi)型等,,讓用戶(hù)專(zhuān)注于處理表格數(shù)據(jù),,不必操心數(shù)據(jù)存儲(chǔ)介質(zhì)的細(xì)節(jié),另外對(duì)字體/顏色/邊框風(fēng)格,、圖表繪制,、公式等均不支持

主要特性

pyexcel被設(shè)計(jì)為插件式,,模塊化地支持各種功能,,默認(rèn)安裝只有pyexcelpyexcel-io兩個(gè)包,,僅支持csv,、tsv文本格式,對(duì)Excel表格支持就是通過(guò)各種插件完成的,,用戶(hù)完全根據(jù)自己所需只安裝必要的插件而不影響整體功能,。

  • 對(duì)xls的格式讀寫(xiě)支持由pyexcel-xls插件完成,依賴(lài)于xlrd/xlwt,;
  • 對(duì)xlsx的格式讀寫(xiě)支持由pyexcel-xlsx插件完成,,依賴(lài)于openpyxl
  • 只寫(xiě)xlsx的支持由pyexcel-xlsxw插件完成,,依賴(lài)于XlsxWriter,;
  • 只讀xlsx的支持由pyexcel-xlsxr插件完成,依賴(lài)于lxml,;
  • 對(duì)ods(Open Document Spreadsheet,,開(kāi)放文檔表單,在Open Office等開(kāi)源辦公軟件中使用廣泛)格式的讀寫(xiě)支持由pyexcel-ods插件完成,,依賴(lài)于odfpy,;
  • 其他更多格式支持詳情,參考庫(kù)文檔,。

在數(shù)據(jù)訪(fǎng)問(wèn)方面,,pyexcel支持整個(gè)表單,、整行/列、矩形區(qū)操作,,單元格索引既可以用行列序號(hào),,也可以用Excel風(fēng)格單元格地址,內(nèi)部自動(dòng)轉(zhuǎn)換無(wú)需用戶(hù)操心,。

pyexcel對(duì)外暴露的類(lèi)型,、方法、函數(shù)種類(lèi)繁多,,參數(shù)繁多,功能多樣,,用戶(hù)可能只需要了解其中少部分就能完成工作,。

0x04 小結(jié)

對(duì)以上幾個(gè)庫(kù)的主要特性和不足總結(jié)對(duì)此如下。
Python中操作Excel的幾種常見(jiàn)庫(kù)對(duì)比Python中操作Excel的幾種常見(jiàn)庫(kù)對(duì)比

上述幾個(gè)庫(kù)對(duì)數(shù)據(jù)分析即使有支持也十分有限,,主要用來(lái)讀出/寫(xiě)入文件,,中間的數(shù)據(jù)分析過(guò)程嘛,則可以交給其他庫(kù)來(lái)完成,,充分發(fā)揮Python生態(tài)極度豐富的優(yōu)勢(shì),,如numpypandas等,。

若是要處理的表格文件較少,,最快捷的方式仍然是各種辦公軟件,微軟的Office,、金山的WPS,、開(kāi)源的Open Office / Libre Office等。遇到大量重復(fù)性的表格文件,,才有必要通過(guò)程序自動(dòng)化,。面對(duì)這么多Excel表格文件操作庫(kù),該如何選擇,?如果要格式和功能的廣泛支持,,首選xlrd/xlwt/xlutilspyexcel;如果沒(méi)有兼容xls格式的包袱,,首選openpyxl,;如果只需要在應(yīng)用中導(dǎo)出/生成表格,則首選XlsxWriter,。

參考

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多