[心得] 使用Excel-XML在網頁上

看板Web_Design作者 (可倫)時間15年前 (2009/04/03 23:28), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
這篇主要是要回應cjoe大和其他對這個格式有疑問的大大 另外小弟才疏學淺,如果有錯歡迎指正

04/03 17:29,
請問k大,您說這樣不行,沒有的型別宣告excel會自己補
04/03 17:29

04/03 17:30,
那會...造成什麼結果呢?
04/03 17:30

04/03 17:31,
另外,請問XML的方式,可以做到欄位合併嗎?
04/03 17:31

04/03 17:31,
如果要USER另外轉存檔案、安裝軟體,會不會更不方便呢?
04/03 17:31
Excel-XML是Excel 2000以後就有的一種存檔格式,在Excel 2007裡他叫做XML試算表2003 在Office 2007裡的OpenXML就是基於這個,但是他是把多媒體等格式用ZIP打包再一起 相關的技術資訊可以看這篇MSDN文章: http://msdn.microsoft.com/zh-tw/library/aa338205(en-us).aspx 因此Office 2007檔案格式還是可以分離出XML來,如果是Excel 2007,把檔案副檔名改成 zip之後,檔案在"xl"這個資料夾裡,不過要這樣做的人應該內容裡都沒有圖,所以存成 Office 2007預設格式還費工 那XML的優勢就是XML就是資料,他不像Excel存出來的HTML用一堆CSS把資料和呈現 打亂,讓編修人員想改也不是,不改也不是,XML的另外一個優勢就是Ajax和任何的 Server-side script都可以讀取,對於小型的應用來說,藉由Excel產生XML資料庫 反而比後台好用,當然,Excel XML不是沒有缺點,就Ajax來說,因為"\n"在 IE和其他瀏覽器裡不一樣,FX認為是Text node,但是IE則不會,而操作XML DOM 在FX和IE提供的method不一樣,也沒有server-side script方便好用(比如說C#) 不過應該是瑕不掩瑜 因為操作XML DOM應該是Ajax的基本功,就不需要講太多了,我還是回應一下上面的 問題好了 第一個是Excel裡都有型別,比如說數字,文字,然後比如說原本有一個欄位是 2035.00這樣,然後你的格式設成「文字」一定可以正常顯是,但是你刪掉了CSS之後 Excel就不知道原本的型別是什麼,他會自己去猜,所以就造成你原本問的格式跑掉的 問題 第二個是XML格式可以合併欄位嗎?請注意以下的語法 <Worksheet ss:Name="Sheet1"> <Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="1" x:FullColumns="1" x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="16.5"> <Row> <Cell ss:MergeAcross="2" ss:StyleID="s63"><Data ss:Type="Number">123</Data></Cell> </Row> </Table> 當我們把A1:A3合併之後,他就會補上ss:MergeAcross的屬性給這個node,所以應該已經 解答你的問題了,然後我們要的也和屬性無關,就是最中間那個Textnode,"123"就好了XD 第三個是User轉存會不會有問題,應該不會有問題吧,你只要給他們講一下 (存成HTML也得講一下吧!),他們就會存了,你也可以套過來用 目前小弟有一個實作品就是一個估價單的網頁,網頁如下: http://www.pavilion-gift.com.tw/report/excel.html 小弟原本想把程式分享到板上的,不過還想再把它改成電子型錄的型式在釋出 但是這支程式目前已經在正常運作了,這位民宿老闆沒有回報不正常的情況 所以應該對於一般使用者來說很方便,畢竟你做一個後台還得訓練一下, Excel他們原本就會用,對小型方案來說不是很好嗎? 最後要不要安裝軟體呢?本來就不需要啊,不是說Office 2000之後就支援這種XML了嗎 如果你不放心,要使用者存成OpenXML(Office 2007),那就得裝Office 2007相容套件 你裝好使用者就可以用了,應該也沒有什麼感覺,對使用者來說他們還可以打開新版 Office檔案格式,搞不好還比較高興呢! (但是存成XLSX之後你不能馬上用Ajax打開,你得自己手動把檔案抽離出來) 至於該怎麼操作Office XML的DOM,ㄟ...自己看那張網頁裡怎麼寫吧! -- 新的Blog歡迎大家多多參觀喔~ http://kelunyang.wordpress.com -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.156.65 ※ 編輯: Kelunyang 來自: 220.132.156.65 (04/03 23:37)

04/04 09:46, , 1F
很有趣!
04/04 09:46, 1F

04/04 23:32, , 2F
感謝提供這麼有趣的資訊
04/04 23:32, 2F
文章代碼(AID): #19rYipjF (Web_Design)