python處理word文件,python與office結合可以干什么-震驚!當Python遇到Excel后,將開啟你的認知蟲洞

 2023-11-18 阅读 30 评论 0

摘要:本文主要內容: 1. Excel,你為什么如此強大 2. 軟件開發也需要團隊作戰 3. Excel的集成方案演化 4. macOS特有的集成方案:applescript python處理word文件,5. Python與Excel集成,有哪些好處 6. 了解多個技術領域,可以間接提高自己的IQ 7.

本文主要內容:

1. Excel,你為什么如此強大

2. 軟件開發也需要團隊作戰

3. Excel的集成方案演化

4. macOS特有的集成方案:applescript

python處理word文件,5. Python與Excel集成,有哪些好處

6. 了解多個技術領域,可以間接提高自己的IQ

7. 提高開發效率的利器:生態滲透

8. 上代碼:Python到底如何與Excel交互

9. 用Python替代VBA

本文主要講Python與Excel的關系以及集成方案,Office家族的其他成員,如Word、PowerPoint與Excel擁有類似的功能,Python同樣可以與Word、PowerPoint等Office成員結合,這些內容我以后會寫文章講解。

excelpython,我相信看這篇文章的大多數人都是程序員。在廣大程序員的眼里,Excel以及Office家族的其他成員完全不能與Python、Java、Sprint Boot這些技術相比。Office被貼上的標簽就是:非專業人員的工具。是由那些體制內的人、會計、業務人員使用的工具,其實這是對Excel的最大誤解。

32818-20200604151342571-163801880.png

1. Excel,你為什么如此強大

Excel從一問世開始,定位就是橫跨辦公和開發兩界。在上個世界末推出的Excel5.0(那時還沒有office這個產品套件)就已經支持VBA了,那可是在Win32下(一種基于dos的shell,并不屬于真正的操作系統)。盡管有些原始(以現在的眼光看),但在當時卻顯得極為先進。因為Excel(以及同期的Word)是人類史上第一個內置領域特定語言(DSL)的民用系統(可以被各個領域的人使用的系統)。正是因為有了VBA,Excel才顯得非常強大。

可能有的程序員會問,即使Excel支持VBA,可以進行編程,也只不過是完成一些自動化操作而已。VBA的功能完全不能與Python、Java、C#、C++這些被廣大程序員熟知的編程語言相比,更別說成為編程領域的主流了。沒錯,如果單憑VBA本身的確無法與這些流行的編程語言相比,但要知道,VBA和Excel本身可以與其他開發工具融合,也就是說,可以讓VBA和Excel成為自己系統的一部分,這就顯得非常牛逼了。

32818-20200604151418962-787317015.png

python與JAVA,2. 軟件開發也需要團隊作戰

那么為什么要將Excel與其他系統結合呢?其實在我們創業時、在公司完成一個項目時,甚至在參加籃球比賽時,都會高頻率提到一個詞:團隊。 現在也流行著一句話:沒有完美的個人,只有完美的團隊。也就是說,沒有人可以什么都會,什么都擅長,就算是天才達芬奇也是如此。但團隊就不一樣了,即使某項工作團隊里沒人能做,也可以擴充團隊成員,吸引能做這項工作的人加入團隊。

其實在開發軟件的過程中也同樣是講究團隊作戰的。不管我們使用的開發工具有多強大,用戶社區由多龐大,都無法規避一個事實:任何技術都不可能適合完成所有的工作。 當然,還有另外一種說法就是盡管某種技術可以完成某項工作,但并不是最好的選擇。

現在回到Excel上來。首先要知道Excel擅長什么,對,沒錯,Excel擅長表格和圖表的制作。盡管有非常多的開發工具也可以制作表格和圖表,但很顯然,Excel是其中最好的(主要用門檻、易用性、功能和用戶基數的綜合指標來衡量)。所以,如果某一個系統要求將數據轉換為表格和圖表,那么這項任務交給Excel來完成是再合適不過了。

3. Excel的集成方案演化

在不同的時期,Excel的集成方案也不盡相同。在Excel的大眼夾時代(那時還是Office97和Office2000的時代),微軟與開源世界還水火不容,我也還處于學生時代。在那個時代,Excel只能與Windows下的開發工具融合,其中主要的開發工具包括微軟的VC、VB、以及Borland(現在已經消失)的Delphi、C++ Builder等。

python應用?F09E88F9830C4B8E82388A27F40A8F00

32818-20200604151505366-793683396.png

最初的集成方案有如下3種:

可視方式:通過OLE組件將Excel直接嵌入窗口中,其實就相當于擁有了一個高級版的表格編輯器

VBA方式:通過ActiveX技術創建Excel.Applicaiton對象(一般是CreateObject函數),然后就可以任意調用VBA的API了,我比較喜歡這種方式。通過這種方式,可以將系統中的數據按著一定的格式直接傳輸到Excel中,給用戶提交的是包含表格數據的Excel文檔。

反客為主方式:這種方式將Excel作為主體。也就是說,主要的操作界面是Excel,在Excel中調用或訪問其他系統。例如,很多年前我做過一個基于Excel的報表系統。該系統分別使用Delphi和Excel實現。Delphi做的管理系統,將數據發送給Excel。但需要用戶自己調整報表格式。我采用的方案是通過Excel的VBA實現表格的格式設置。其中有部分功能需要訪問SQL Server數據庫,以及完成與Delphi實現的系統類似的功能,這部分功能使用了Delphi封裝的Dll(COM組件),然后通過Excel反過來調用這些DLL。最終用戶使用的方式是用主系統完成大部分工作。如果想調整Excel的報表樣式,可以直接用Excel來完成(會在Excel上提供一些自定義的菜單和按鈕,現在通過加載項【Add-ins】實現)

python3、04238C0991E443F5A0EC017962644A36

32818-20200604151525518-99253011.png

不過隨著時間的推移,現在的微軟已經擁抱開源和其他系統。所以Excel也不僅限于Windows。在macOS上也可以完成在Windows上的大多數工作,甚至Visual Studio也推出了macOS版本。而且.net core也可以同時跨Windows、macOS和Linux三個平臺,SQL Server也開始支持Linux。以后我們會在更多的場景看到微軟的身影。

既然Excel已經支持了macOS平臺,就需要采用跨平臺的方式與Excel集成。當然,前面介紹的幾種方案現在仍然可用,但僅限于Windows平臺。不過我們無法預測用戶到底使用哪一個平臺,所以應該盡量使用跨平臺方案。

目前主要的跨平臺方案有如下3種:

直接修改xlsx文件

python和JAVA的區別,通過VBA間接調用其他編程語言

使用office.js

第1中方式有很多編程語言都支持,例如,Python、Java、Julia、Go、JavaScript。幾乎你能想到的編程語言,都有支持xlsx格式的庫。這里只討論Python。如果想了解更多關于集成Excel的技術,可以關注我的公眾號:極客起源。

在Python語言中,支持Excel文件格式的庫非常多,如非常著名的openpyxl、xlsxwriter等。通過這些庫,可以在不依賴Excel環境的情況下,生成xlsx格式的文件。不過這些庫基本是只是生成Excel文件,并不能更好地利用VBA以及更高級的功能。由于Excel文件格式非常復雜,完全支持比較困難,所以這些庫只是支持一部分Excel的功能,但這些功能對于絕大多數需求已經足夠了。

第2種其實是一種取巧的方式,通過VBA做橋,調用其他編程語言,相當于用其他編程語言代替了VBA。這其中典型的就是xlwings。盡管這種方式從表面上看可以直接在Excel中像使用VBA一樣使用這些編程語言,但從本質上看仍然是直接寫xlsx文件。功能其實與第1種方式相同,因為這并不是官方支持的功能。

第3種是office.js,這是微軟官方提供的一個基于JavaScript的程序庫。基于Node.js,可以用JavaScript完全取代VBA實現Excel以及Office其他成員的加載項。office.js可以在Electron、Web應用以及大多數基于JavaScript的場景中使用。關于office.js的內容我以后會寫文章詳細描述,對office.js感興趣的同學也可以關注"極客起源”公眾號,會不定期更新這方面的內容。

office支持python、32818-20200604151605942-623906739.png

87C2C913F21C4FEAB8A3F29C5C726517

4. macOS特有的集成方案:applescript

除了跨平臺解決方案外,在macOS上,還支持使用applescript與Office(Excel、World、PowerPoint等)交互,這些內容我以后再撰寫文章詳細講解。如果要了解excel applescript api,可以參考Excel Reference。從效果來看,applescript操作Office與在Windows下通過COM組件操作Office類似,可以完全控制Office,只是applescript的語法更接近自然語言。

下面的applescript代碼會創建一個新的Excel文檔,并將其保存為first.xlsx文件。

32818-20200604151633956-1643045524.png

python和office哪個好考。運行后,會看到一個打開的Excel文檔,并且已經保存為firstx.xlsx文件。

32818-20200604151657859-1704056816.png

5. Python與Excel集成,有哪些好處

Excel對于Python來說,可以將Excel看做是一個可編程的大組件。這個組件的主要功能就是可以制作任意復雜的報表和圖表。盡管Python有很多模塊可以制作報表和圖表。但這些模塊的功能和效果完全沒辦法與Excel相比。所以將Python與Excel結合的最大好處是可以快速完成制作報表的任務,而且效果杠杠滴。

將Python與Excel相結合,其實還會引出另外一個思考,就是成為專家還是通才的問題。我聽到有很多程序員說,要將某種語言搞通,如PHP、Python、Java等,然后就可以很輕松解決所有的問題。結果真是這樣嗎?

很久以前,我聽過一個關于微軟的故事(相信很多人也聽過),在微軟有一個幾十人的團隊,花了好幾個月還沒完成一個項目,聽說是遇到了某些難題。這時有一個老程序員(據說至少50歲以上)將自己關在辦公室里一個星期,搞定! 我們先不管這個故事是真是假,那么從理論上來說,是否有這個可能呢?其實如果光看編程速度,再牛叉的程序員,也不可能比普通程序員快幾十倍,更何況數百倍了。但還有另外一種可能,就是這名老程序員使用了完全不同的方法,繞過了大多數影響效率的因素,例如,使用了不同的工具,采用了不同的轉換方式,甚至使用了不同的設計理念等等。這就不是能力問題了,而是認知的問題。我將其稱為"認知蟲洞”。

python對辦公有用嗎。32818-20200604151738737-591880273.png

所謂"認知蟲洞”,是指通過某種方式很難完成某項工作,但通過另外完全不同,甚至是顛覆三觀的方式,可以用極短的時間達到目的,而且效果極好。就像找到了可以穿越浩瀚星空的蟲洞。這也有點像數學中的"等價替換”。

可能這個微軟的例子離我們太遠,下面舉一個我自己的關于Excel例子,很多年前,我還在國內某大型軟件公司作高級程序員。團隊需要制作大量的報表,使用的主要開發工具是Delphi、后端是SQL Server數據庫。Delphi本身有自己的報表系統,叫QuickReport。功能是很強大的,但問題是,做起來太費勁。例如,要畫表格線時,如果一不小心將某根線拖到了別的地方,而且被其他東西覆蓋,那你就找把,還必須要找到,否則打印出來的表格上就會莫名其妙多了根線。結果團隊好幾個人弄了好幾天還沒弄完(也包括我)。后來我實在不想這么弄了(因為買了幾張影碟,著急回家看電影,不想加班),于是想到了利用Excel或Word來完成這個報表系統。通過Delphi傳輸數據。

說干就干,花了不到2個小時,所有的報表全部搞定(只有我一個人哦),幾個人幾天都沒搞定的東西,我自己不到2個小時搞定,這當然不是我編程速度快了幾十倍,而是處在了不同的維度,使用了完全不同的技術來實現,用QuickReport需要一根線一根線的畫,而使用Excel,我不需要畫線,只需要用SQL語句查詢出數據,然后將這些數據發送給Excel即可。單單用了一個Excel,速度就提高了這么多,如果系統中很多部分都使用了類似的技術,那么編程效率提高數百倍,甚至上千倍,也不是沒有可能的。

6. 了解多個技術領域,可以間接提高自己的IQ

可能有的同學會問,既然可以將多種技術結合起來大幅度提高開發效率,那么為什么不通過團隊合作的方式來完成了,通常一個人無法學會那么多技術。其實這就是一個認知的問題,團隊合作只有在項目所采用的技術被確定后,例如,如何集成多種技術,才可以發揮作用。問題是,如果多種知識分散在不同人的大腦中,很可能沒有人意識到應該去這樣融合多種技術,就更談不上團隊合作了,就像你要探索宇宙,首先你要知道存在宇宙這種東西,否則怎么去探索呢? 我將這種現象稱為"認知孤島”(相對于"認知蟲洞”而言),就是說并不是沒有能力去做,而是壓根就沒有意識到應該這樣做(由于知識的缺乏、同時導致想象力的受限)。

python office編程。32818-20200604151817918-1703295726.png

FC5813FEA108415C8C1E5E576E8B6454

為什么達芬奇那么牛逼,除了聰明之外,達芬奇還橫跨多個完全不同的領域,正是因為對生物學和解刨學的了解,蒙娜麗莎的畫像才會那么自然,栩栩如生,因為達芬奇對骨骼、肌肉的構造非常了解,這是其他任何畫家都無法比肩的。如果你在某一個領域排名前20%,而在另外一個領域排名也是前20%,那么如果需要兩個領域的知識來解決問題時,你就會排名前4%(20% * 20%),如果是3個領域就是百里挑一。如果是6個領域,那就是萬里挑一,據說達芬奇涉足十多個領域。由于自己和自己溝通的成本為0,所以只有擁有足夠多的知識,并且有融合他們的能力,那么你就是下一個達芬奇!

32818-20200604151832957-2000862493.png

我們可以舉個數學與Python的例子:

如果我們的程序需要計算某個表達式的定積分(例如y = 2 * x從0到1的定積分)。

python辦公應用、32818-20200604151856579-1366351495.png

8FC9694B4EFC40C9BC7262CCAD29F7A3

假設我們使用的是Python語言,并且不太清楚有什么庫可以自動計算定積分,那么采用的方式就是利用數值計算的方式寫程序去完成,計算定積分的數值計算公式比較復雜,可能不是在短時間內能完成的。不過要是了解sympy這個庫,那就是幾行代碼的事:

importsympy

x= sympy.Symbol('x')

f= 2 *x#開始計算定積分

python和office哪個簡單。print(sympy.integrate(f,(x,0,1)))

是不是很簡單呢? 只需要了解一個API的用法就搞定了。

假設現在我們還有一個需求,要計算某個函數在某一點的導數(導數在深度學習中經常使用),而手頭又沒有必要的庫(也有可能是不知道),那么只要了解導數的原理,就很容易通過幾行代碼搞定,這就屬于高等數學的范疇了。

32818-20200604151942559-758548866.png

導數原理,右側是導數的計算公式,

#計算導數的函數

python與c++的區別。defderivative(f,x):

h= 0.0001 #x軸的增量,需要是一個很小的值,但要在浮點數精度范圍內,通常不能超過小數點后6位

return (f(x + h) - f(x - h)) / (2 *h)#待計算的函數1(y = 2 * x)

deff1(x):return 2 *ximportmath#待計算的函數2( y = sin(x) * cos(x) / (sin(x) + cos(x)) )

deff2(x):return math.sin(x) * math.cos(x) / (math.sin(x) +math.cos(x))print(derivative(f1,10)) #1.9999999999953388

print(derivative(f2,123)) #-0.331842825692652

python和delphi哪個好。PS:對這些代碼和高等數學不熟悉也沒關系,這里我只是舉個例子,后期我會寫一些關于數學和編程方面的文章,詳細解釋這些好玩的東西,可以關注我的公眾號:極客起源 ,會不斷更新各種技術和數學文章,以及視頻課程。

從這兩個案例可以看出,在某一個領域需要非常費勁才能搞出來的東西,在另一個領域其實就是hello world。如果了解足夠多的領域,那么完成很多工作,就會表現出天才的特征(這也是成為天才的途徑之一,另一個途徑是投胎)。

759720D63FC6476580B871C3E3E739FD

32818-20200604152028990-1073529722.png

PS:Excel的功能不僅僅是制作報表,Excel還擁有強大的數據分析能力。所以如果將Python與Excel集成,就意味著Python將擁有了Excel的全部能力,相當于Python擁有了Excel的整個生態。我將其稱為"生態滲透”。也就是通過集成或其他方式,一種技術可以直接或間接使用另外一種技術的全部或大部分資源。

7. 提高開發效率的利器:生態滲透

在未來,支持生態滲透的開發方式會非常普遍,如果只是用了一些現成的庫或開源軟件,并不能大幅度提高開發效率,但如果可以利用某些強大系統的生態,就不一樣了。在未來,還會有很多支持"生態滲透”的開發工具。例如,我們團隊研發的UnityMarvel,就是一款超平臺開發系統。這里之所以稱為"超平臺”,而不是"跨平臺”,是因為UnityMarvel不僅僅可以跨操作系統平臺,還可以跨數據庫平臺,云平臺、API平臺、開源硬件、物聯網等,以及支持虛擬SQL、客戶端服務端一體化、柔性熱更新、Office加載項、瀏覽器插件等新特性。因此稱為"超平臺”開發系統。并且自己研發了Ori編程語言(語法融合了Python、Java、Go等語言的優秀特性,但功能得到了前所未有的增強)。通過這些特性,可以用前所未有的規模利用其他系統的生態,要遠比Python使用Excel的生態更完美。其他功能先不解釋(等發布后我再寫文章詳談),先說說UnityMarvel是如何跨數據庫的。

所謂跨數據庫(目前指關系型數據, 以后會支持文檔、鍵值等NoSQL數據庫),是指用UnityMarvel開發基于數據庫的應用并不需要事先確定到底用什么數據庫(如MySQL、SQL Server、Oracle等),UnityMarvel內置了一種虛擬數據庫,可以直接用虛擬數據庫開發,在發布時,會要求選擇使用的數據庫,例如,選擇MySQL或SQL Server。UnityMarvel會通過rosetta引擎將Ori語言的代碼轉換為支持MySQL的代碼。關于數據庫的部分,主要是用過內置的一種虛擬SQL完成的,而且這種SQL語言是與Ori語言是融為一體的。例如,如果要從persons表中查詢出id大于30的所有記錄,可以直接這樣寫:

var result = SELECT *FROM persons

WHERE id> 30;

result的類型是SQLSelect,將result賦給Grid組件,就會直接顯示查詢結果。當發布時,會將上面的代碼轉換為使用相應數據庫(如MySQL、SQL Server)的特定編程語言(如JavaScript、Java等)的代碼。這么做的好處如下:

1. 不需要進行數據庫選型,數據庫是在發布時后期綁定的;

2. 如果想切換數據庫(例如,從MySQL換成Oracle),只需要重新發布,選擇相應的數據庫就可以了,不需要修改一行代碼;

3. 統一數據庫接口,開發人員并不需要了解各種數據庫的細節,開發門檻低;

4. UI與數據庫交互非常容易,不必考慮各種數據庫引擎和庫,只需要直接將SQL語句賦給與其交互的UI組件即可;

5. 自動檢測和去除大多數SQL中的潛在風險,如SQL注入等;

6. 脫離數據庫環境開發。例如,想使用MySQL數據庫開發,但當前機器上并沒有MySQL開發環境,又不想安裝MySQL。這時仍然可以用UnityMarvel內置的虛擬數據庫進行開發,然后發布即可,部署在有MySQL環境的機器上就可以成功運行了;

32818-20200604152402020-1124711663.png

A9D1D071190640689EB06449500BABEF

8. 上代碼:Python到底如何與Excel交互

在這一節玩點真格的,看一看Python到底如何與Excel交互。我們使用目前最常用的openpyxl來完成操作。先看一個未處理的Excel表格。

32818-20200604152519810-1144870205.png

45D2099A112A4A0FA8482757C455BDAB

上面這個表格是關于營業計劃的數據,看起來很別扭,因為不同層次的數據之間沒有縮進,也沒有背景顏色,甚至沒有表格線。如果要將這個表格交給領導,估計領導會拿起塊磚頭砸過來!

領導最希望見到下面的表格:

32818-20200604152539863-1851306959.png

這個表格看起來是不是很舒服呢!其實這個表格用Excel做起來也并不費勁。不過仍然需要N步,這里就不詳細解釋如何用Excel來做這個表格了,現在來看如何利用Python閃電般進行格式轉換。

from openpyxl.styles importAlignment,Font,Border,Side,Color,PatternFillimportopenpyxl#打開待轉換的文件

workbook = openpyxl.load_workbook('原始表格.xlsx')

ws=workbook.active

table= ws['A1':'D11']#設置字體

ft = Font(name="黑體")for rows intable:for cell inrows:

cell.font=ft#調整行高(所有的行的高度統一設置為18)

for i in range(1,ws.max_row + 1):

ws.row_dimensions[i].height= 18.0

#插入列

ws.insert_cols(1,1)#調整新插入列的寬度

ws.column_dimensions['A'].width = 5

#插入行

ws.insert_rows(1,1)#調整新插入行的高度

ws.row_dimensions[1].height = 10

#文字左對齊,數字右對齊

leftAlign = Alignment(horizontal='left',vertical='center')

rightAlign= Alignment(horizontal='right',vertical='center')for row inws.rows:for cell inrow:#數字,右對齊

if type(cell.value) ==int:

cell.alignment=rightAlignelse:

cell.alignment=leftAlign#調整列寬

ws.column_dimensions['B'].width =20ws.column_dimensions['C'].width =9ws.column_dimensions['D'].width =9ws.column_dimensions['E'].width =9ws.column_dimensions['F'].width =4 #讓表格線出來一點

#為表格添加邊框

topBorder= Border(top=Side(border_style='thick',color='000000'))#bottom=Side(border_style='thick',color='000000'),

#horizontal = Side(border_style='thin',color='000000'))#添加表格頂邊的粗線(包括最后沒有數據的列)

for col in range(2, ws.max_column + 2):

ws.cell(2, col).border =topBorder

bottomBorder= Border(bottom=Side(border_style='thick',color='000000'))#添加表格底邊的粗線(包括最后沒有數據的列),這里需要加1,是因為前面繪制表格頂邊的粗線時,最大列的數量已經多了1個#所以只需要加1即可

for col in range(2, ws.max_column + 1):

ws.cell(ws.max_row, col).border=bottomBorder#添加水平細線

horizontalBorder = Border(top=Side(border_style='thin',color='000000'))for col in range(2, ws.max_column + 1):for row in range(4,ws.max_row):

ws.cell(row, col).border=horizontalBorder#單元格縮進

ws['B5'].alignment=Alignment(indent=1)

ws['B6'].alignment=Alignment(indent=1)

ws['B8'].alignment=Alignment(indent=1)

ws['B11'].alignment=Alignment(indent=1)

ws['B9'].alignment=Alignment(indent=2)

ws['B10'].alignment=Alignment(indent=2)#設置文字顏色

blueFont = Font(name="Arial",color = '4169E1')for col in range(3, ws.max_column + 1):

ws.cell(5, col).font=blueFont

ws.cell(6, col).font =blueFont

ws.cell(9, col).font =blueFont

ws.cell(10, col).font =blueFont#設置背景色

fill = PatternFill("solid", fgColor="B0C4DE")for col in range(2, ws.max_column + 1):

ws.cell(4, col).fill=fill

ws.cell(7, col).fill =fill

ws.cell(12, col).fill =fill

workbook.save('轉換后的表格.xlsx')print('見證奇跡的時刻')

現在運行程序,當輸出"見證奇跡的時刻”后,就會在當前目錄生成一個"轉換后的表格.xlsx”,該文件就是上圖的效果,是不是很神奇呢?

從這段程序中可以看出,轉換該表格需要多少步,代碼并不復雜,大家可以根據openpyxl的文檔研究。

9. 用Python替代VBA

目前微軟官方還沒有將Python作為VBA的替代品,倒是將JavaScript作為了另外一個選擇(office.js),不過可以利用xlwings做一個折中。xlwings可以單獨使用,也可以通過xlwings office加載項提供的RunPython函數運行Python代碼。

現在有一個hello.py文件,代碼如下:

importxlwings as xwdefhello_xlwings():

wb=xw.Book.caller()

wb.sheets[0].range("A1").value = "Hello xlwings!"

在xlwings的安裝目錄有一個xlwings.xlam文件,該文件是Excel的加載項文件,也就是Excel VBA的發行包文件。現在隨便開啟一個空的Excel workbook,然后點擊"工具”>"Excel加載項”菜單項,會打開如下圖所示的對話框,找到xlwings.xlam文件,并選中該文件。

32818-20200604152716337-883856747.png

然后在"開發工具”選項卡中點擊"Visual Basic”按鈕(如下圖所示),進入VBA編輯頁面。

32818-20200604152742372-533187979.png

最后引用xlwings庫即可。

AD57DBCF084045298A4C96FDFD886C2C

現在可以新建一個VBA模塊,然后編寫下面的代碼:

Sub test()

RunPython ("import hello; myproject.hello_xlwings()")

End Sub

運行腳本,就會看到在"A1”的位置插入了Hello xlwings!

OK,現在大家已經了解了如何使用Python與Excel交互,其他還有很多種方法,而且也不僅僅只有Python能與Excel交互,其實幾乎所有的編程語言,甚至是C語言,都有想用的Library可以與Excel交互。那就期待我下面的文章吧!

32818-20200604153147191-1758815549.png

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/176739.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息