原因1、其實我是第二次寫C#
雖然想要用java,但是我要用的幾個特殊功能java沒有提供,想說用VB的話…又覺得他過時了~想說順便來試試C#吧?
而且C#與Word是同樣是微軟的產品,支援應該不錯吧?
於是就開啟了這隻程式
原因2、c#對word的支援方式很怪~
C#中,要使用WORD的方法是1、先選取一個區域(叫作Range),然後再對這個range做動作
但是因為他range的選擇方式很奇怪…所以選到的位置不見得是自己想要的,我過程我改過了數次
range= word.range(start, end)
range= word.range(start-1, end)
這兩行我改來改去不下3次,而且還常常跑不一樣的結果…我一整個不知道該說什麼~~
於是在try and error與寫程式同時並行的結果,我最後寫出了這個超直觀的程式碼~~
3、因為每份公文的頁數是不固定的:
可能這份只有2頁,下一份卻長達30頁一類……(可以由for loop看出來,每次程式要跑的次數不同)
因此無法使用類似template,來產生word的方式…真的有點殘念
4、因為這個產生的word需要有header(而且不是每頁的header一樣)
因此也無法將之弄成網頁………(這個可能有…只是我查不到)
5、C#對於word的支援雖然大多數功能都支援到了,但是很多東西都藏得很深
而且他的文件(msdn)其實編的很不好…有很多東西想找找不到~~還是一直去google看有沒有人寫過類似的code...
一直複製別人的程式碼,品質就不怎麼好了~
講到這就不得不推java...其api的介紹真的詳細很多~~
(不過他的example就沒有word清楚)
---
總之總之…這個寫了很久的程式終於結束了
再一開始的時候C#不認得word...上網查,每個人都叫我去下載OXPPIA,O2003PIA,還重安裝了幾次OFFICE,結果最後發現是c#裡面還要Add reference....
然後要加文字方塊時還找到了需要用VS的dll(還好最後有找到VC#用的)
不斷的研究那個Start, end到底有什麼意義…為什麼不能把游標擺過去…
一堆又一堆的問題~~總算結束了~~總程式約1500行,但其實技術層面的程式碼-->零
只能說這真的是無敵無敵爛的程式了~~也許過幾天整個測試上線圓滿了後,我會來把他改好一點吧?
至少要加一些新資料可以加~~
沒有留言:
張貼留言