aspose excel中文文档_除了VBA,还有哪些编程语言可以操作Excel文件?
Excel(Microsoft office)是現(xiàn)在最常用的辦公軟件,主要涉及電子表格制作、數(shù)據(jù)處理、報(bào)表輸出展示以及更高端的還有金融建模等;我們知道,在需要批處理多個(gè)Excel工作表以及工作簿的時(shí)候,需要用到一個(gè)自動(dòng)化的利器:VBA
VBA其實(shí)是Visual Basic嵌套在office軟件中的一個(gè)子集;VBA的功能很強(qiáng)大;但同時(shí)由于更新較少也有一些不方便的地方;比如VBA的數(shù)組功能一直被詬病,比如缺少智能提示的編輯器等等;那么有沒有其他的編程語言也可以操作Excel呢?
下面就讓我們來盤點(diǎn)一下:
Go語言 : Excelize
Excelize 是 Go 語言編寫的用于操作 Office Excel 文檔基礎(chǔ)庫,基于 ECMA-376,ISO/IEC 29500 國際標(biāo)準(zhǔn)??梢允褂盟鼇碜x取、寫入由 Microsoft Excel 2007 及以上版本創(chuàng)建的電子表格文檔。支持 XLSX / XLSM / XLTM 等多種文檔格式,高度兼容帶有樣式、圖片(表)、透視表、切片器等復(fù)雜組件的文檔,并提供流式讀寫 API,用于處理包含大規(guī)模數(shù)據(jù)的工作簿
Excelize是國人編寫的基于Go語言的Excel庫,中文文檔相對(duì)來說更為齊全,同時(shí)Go語言是編譯型語言,編譯后只有1個(gè)運(yùn)行文件,可以方便的拷貝到其他電腦使用,同時(shí)不用安裝額外的運(yùn)行時(shí),Go語言還有一個(gè)優(yōu)勢(shì)就是,速度真的非常快
簡單入門
安裝
//?1、安裝Go語言程序//?2、安裝Gitgo?get?github.com/360EntSecGroup-Skylar/excelize創(chuàng)建Excel文檔
package?mainimport?(????"fmt"????"github.com/360EntSecGroup-Skylar/excelize")func?main()?{????f?:=?excelize.NewFile()????//?創(chuàng)建一個(gè)工作表????index?:=?f.NewSheet("Sheet2")????//?設(shè)置單元格的值????f.SetCellValue("Sheet2",?"A2",?"Hello?world.")????f.SetCellValue("Sheet1",?"B2",?100)????//?設(shè)置工作簿的默認(rèn)工作表????f.SetActiveSheet(index)????//?根據(jù)指定路徑保存文件????if?err?:=?f.SaveAs("Book1.xlsx");?err?!=?nil?{????????fmt.Println(err)????}}讀取Excel文檔
package?mainimport?(????"fmt"????"github.com/360EntSecGroup-Skylar/excelize")func?main()?{????f,?err?:=?excelize.OpenFile("Book1.xlsx")????if?err?!=?nil?{????????fmt.Println(err)????????return????}????//?獲取工作表中指定單元格的值????cell,?err?:=?f.GetCellValue("Sheet1",?"B2")????if?err?!=?nil?{????????fmt.Println(err)????????return????}????fmt.Println(cell)????//?獲取?Sheet1?上所有單元格????rows,?err?:=?f.GetRows("Sheet1")????for?_,?row?:=?range?rows?{????????for?_,?colCell?:=?range?row?{????????????fmt.Print(colCell,?"")????????}????????fmt.Println()????}}缺點(diǎn)
Go語言本身的錯(cuò)誤處理真的是太迷了,可以看到每次對(duì)象賦值都要聲明err,然后判斷err != nil;同時(shí)在數(shù)據(jù)結(jié)構(gòu)上,Go語言在對(duì)二維表(行列)操作時(shí),也會(huì)有一點(diǎn)繞
結(jié)論
Excelize可以說是國內(nèi)最好的第三方Excel操作庫,雖然上手會(huì)有一點(diǎn)難度,但是在功能的豐富性和較好的運(yùn)行性能,還是值得一試的
Excelize中文文檔鏈接
Python : Pandas
Pandas是一個(gè)強(qiáng)大的分析結(jié)構(gòu)化數(shù)據(jù)的工具集;它的使用基礎(chǔ)是Numpy(提供高性能的矩陣運(yùn)算),用于數(shù)據(jù)挖掘和數(shù)據(jù)分析。 Pandas中有DataFrame和Series兩個(gè)數(shù)據(jù)類型,就好像Excel的工作表和數(shù)據(jù)列(轉(zhuǎn)置后也可以看作:數(shù)據(jù)行),這就和Excel天生契合
簡單入門
安裝
#?1、?使用conda安裝conda?install?pandas#/2、或者使用pip安裝pip?install?pandas讀取Excel文檔
import?numpy?as?npimport?pandas?as?pddf?=?pd.read_excel(open('tmp.xlsx',?'rb'),??????????????sheet_name='Sheet3')輸出Excel文檔
import?numpy?as?npimport?pandas?as?pddf?=?pd.DataFrame([['a',?'b'],?['c',?'d']],???????????????????index=['row?1',?'row?2'],???????????????????columns=['col?1',?'col?2'])df.to_excel("output.xlsx")??缺點(diǎn)
Pandas在數(shù)據(jù)處理上是非常方便的,但在文檔外操作,如批量修改工作簿名稱,就需要引入os庫;同時(shí)如果已有Excel文檔是帶格式(顏色填充、字體設(shè)置、單元格合并等),寫入Excel的時(shí)候就會(huì)破壞掉原來的格式
同時(shí),Python作為腳本語言,如果到其他電腦運(yùn)行,需要額外安裝運(yùn)行環(huán)境
結(jié)論
如果純粹的處理大批量數(shù)據(jù)(十萬級(jí)以上),pandas自帶各類聚合函數(shù),讓你處理起來得心應(yīng)手;同時(shí)Pandas可以結(jié)合matplotlib等第三方繪圖庫,可以方便的可視化數(shù)據(jù) 如果你的數(shù)據(jù)本身可以離開Excel,如數(shù)據(jù)是從數(shù)據(jù)庫導(dǎo)入Excel,那么也可以直接使用Pandas導(dǎo)入數(shù)據(jù)庫數(shù)據(jù),然后在Pandas上進(jìn)行分析處理;Pandas底層使用numpy,在矩陣運(yùn)算中具有非常高的性能
Pandas文檔鏈接
Python : Openpyxl
openpyxl是一個(gè)用于讀取/寫入Excel2007及以上版本(即xlsx格式)文件的Python庫,不論是Excel內(nèi)的特殊格式,還是單元格處理,都提供了相應(yīng)的函數(shù),與Excelize近乎相當(dāng)
簡單入門
安裝
pip?install?openpyxl創(chuàng)建文檔
from?openpyxl?import?Workbookwb?=?Workbook()ws?=?wb.activews.title?=?"新的工作表01"ws.sheet_properties.tabColor?=?"1072BA"wb.save('demo.xlsx')讀取文檔
from?openpyxl?import?load_workbookwb?=?load_workbook('test.xlsx')print(wb.sheetnames)?缺點(diǎn)
Openpyxl不像pandas那樣,底層使用numpy,所以在運(yùn)行速度上,其實(shí)要比Excelize和pandas要慢(但是還是要比VBA要快一點(diǎn));同時(shí)也是因?yàn)镻ython作為腳本語言,如果要放到其他電腦運(yùn)行,需要安裝相應(yīng)的運(yùn)行環(huán)境
結(jié)論
相對(duì)來說,Openpyxl與VBA的應(yīng)用場(chǎng)景重合度會(huì)更高一點(diǎn),處理的思路都是比較相近的;Python在語法上,比VBA要豐富和方便的多,如果需要切換,學(xué)習(xí)曲線會(huì)比較平滑
Openpyxl文檔鏈接
Python : Xlwings
xlwings也是Python操作Excel的第三方庫,很大程度上就是補(bǔ)全Pandas的缺點(diǎn),可以在方便的處理文檔本身,如修改工作表名稱,將Pandas的數(shù)據(jù)處理結(jié)果調(diào)用到Excel原來的文件等
簡單入門
安裝
pip?install?xlwings創(chuàng)建和讀取Excel文檔
import?xlwings?as?xwwb?=?xw.Book()??wb?=?xw.Book('FileName.xlsx')?#創(chuàng)建一個(gè)新的Excel文件wb?=?xw.Book(r'C:pathofile.xlsx')#讀取一個(gè)已有的Excel文件sht?=?wb.sheets['Sheet1']sht.range('A1').value?=?'Foo?1'#單元格賦值wb.save()缺點(diǎn)
在功能上,如文檔格式化等相較Excelize和Openpyxl來說,還是有不少功能沒有實(shí)現(xiàn)
結(jié)論
xlwings更多的是可以作為xlwings的擴(kuò)展,學(xué)習(xí)曲線和Openpyxl也比較相似
xlwings文檔鏈接
其他
其他的還有C#的EPPlus/NPOI;Java的POI,easyExcel;JavaScript的exceljs等,也是不錯(cuò)的Excel操作庫;但學(xué)習(xí)曲線更為陡峭,應(yīng)用場(chǎng)景也更為復(fù)雜。如果有一天,厭倦了VBA,但是又不想使用Go和Python,也是可以去嘗試一下的
總結(jié)
以上是生活随笔為你收集整理的aspose excel中文文档_除了VBA,还有哪些编程语言可以操作Excel文件?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows10系统下无法登录xbox
- 下一篇: cad怎么转换成pdf格式cad怎么转换