線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2407
推到 Plurk!
推到 Facebook!

轉出 Excel 的內容含不合法公式會出錯

缺席
cancer
高階會員


發表:58
回覆:319
積分:190
註冊:2004-07-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2013-08-06 17:17:35 IP:220.128.xxx.xxx 訂閱
各位好,我把資料庫的資料取出,用 ComObj 塞到 Excel 裡面,填入其中一個 Cell 的內容是 "=51 Y",因為是不合法的公式,轉入過程中就出錯了,請問,要怎麼讓 Excel 不要視內容當做公式?
老大仔
尊榮會員


發表:77
回覆:835
積分:1082
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2013-08-07 07:17:17 IP:210.61.xxx.xxx 未訂閱
您好:
請問是要輸入51Y?還是Y51?

經以下測試是可以的
ExcelApp.Cells[i, j 1] := '=SUM(B2:F2)';

但假如依您的說法(=51Y)
光是在Excel中輸入這個公式應該就不行了




===================引 用 cancer 文 章===================
各位好,我把資料庫的資料取出,用 ComObj 塞到 Excel 裡面,填入其中一個 Cell 的內容是 "=51 Y",因為是不合法的公式,轉入過程中就出錯了,請問,要怎麼讓 Excel 不要視內容當做公式?
編輯記錄
老大仔 重新編輯於 2013-08-07 07:18:43, 註解 無‧
sryang
尊榮會員


發表:38
回覆:742
積分:876
註冊:2002-06-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2013-08-07 16:31:20 IP:202.134.xxx.xxx 訂閱
=T("=51Y")

這樣就不會當成公式
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
P.D.
版主


發表:572
回覆:3897
積分:3689
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2013-08-08 00:39:53 IP:118.169.xxx.xxx 未訂閱
想讓 EXCEL當成是文字, 
最簡單的方式就是
'=51 Y
也就是原本字串內容是 "=51 Y", 加進一個 " '=51 Y" (單引號),
在 Excel中, 只要第一碼是 ' , Excel一定當文字

另外, 你這篇無關於資料庫系統, 應該轉到 Win32篇較適當
===================引 用 cancer 文 章===================
各位好,我把資料庫的資料取出,用 ComObj 塞到 Excel 裡面,填入其中一個 Cell 的內容是 "=51 Y",因為是不合法的公式,轉入過程中就出錯了,請問,要怎麼讓 Excel 不要視內容當做公式?
cancer
高階會員


發表:58
回覆:319
積分:190
註冊:2004-07-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2013-08-27 15:19:29 IP:220.128.xxx.xxx 訂閱
各位好,差點忘記有貼文,我原先也有考慮過該貼在哪一版,因為是從資料庫撈出資料,決定放在這裡。
資料是一份國際貿易文件的內容,有買方及賣方資料,有貨物明細內容,轉出的 Excel 絕對不能加東西,必須跟原本的內容完全相符。
資料內容含有錯誤的公式,導致轉出失敗,我想應該是從 Excel 底稿著手才有用,程式是先調出底稿,在底稿裡填內容,然後另存新檔,因為我已經把底稿的所有儲存格設為文字,但還是出理這種錯誤。
===================引 用 P.D. 文 章===================
想讓 EXCEL當成是文字,
最簡單的方式就是
'=51 Y
也就是原本字串內容是 "=51 Y", 加進一個 " '=51 Y" (單引號),
在 Excel中, 只要第一碼是 ' , Excel一定當文字

另外, 你這篇無關於資料庫系統, 應該轉到 Win32篇較適當
===================引 用 cancer 文 章===================
各位好,我把資料庫的資料取出,用 ComObj 塞到 Excel 裡面,填入其中一個 Cell 的內容是 "=51 Y",因為是不合法的公式,轉入過程中就出錯了,請問,要怎麼讓 Excel 不要視內容當做公式?
P.D.
版主


發表:572
回覆:3897
積分:3689
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2013-08-30 01:29:10 IP:118.169.xxx.xxx 未訂閱
首先先說明, 已將文章由資料庫轉移到 win32區, 因為我的看法, 不是由資料庫撈出就應該歸到資料庫區, 發上來的內容, 應就功能性來看, 
這篇八竿子打不著資料庫的邊, 完全是討論 excel轉出入的問題, 所以歸類到 win32 比較適合, 這是我個人的意見, 希望大家不要針對此問題又開啟另一戰場才好

就問題回答,
我以前也遇到這樣的問題, 在excel中, = 就會被識別為公式, 這與底稿先設定是否為文字沒有任何關係,
因為我不清楚cancer大大所提 完全相符 的定義,
就我的經驗, 在Delphi中加入 '=51Y , 轉到 EXCEL中時, 在 CELL上 ' 這個引號是不會出現(在編輯區會看的到),
但這樣的確可以讓EXCEL將該格址識別為文字型態, 其實在EXCEL 2003以前,
CELL中以 ' 為開頭, 代表文字型態靠左排 " 這是代表靠右排, 置中少用, 我忘了那個符號

或者在 =51 Y 的等號前面加一個 CHR(32), 強制填入空白也可讓EXCEL當成空白,
畢竟Delphi不是Excel, 很多東西我們無法強求, 貓可以變成狗
不知這樣是否能解決cancer 大大的問題

===================引 用 cancer 文 章===================
各位好,差點忘記有貼文,我原先也有考慮過該貼在哪一版,因為是從資料庫撈出資料,決定放在這裡。
資料是一份國際貿易文件的內容,有買方及賣方資料,有貨物明細內容,轉出的 Excel 絕對不能加東西,必須跟原本的內容完全相符。
資料內容含有錯誤的公式,導致轉出失敗,我想應該是從 Excel 底稿著手才有用,程式是先調出底稿,在底稿裡填內容,然後另存新檔,因為我已經把底稿的所有儲存格設為文字,但還是出理這種錯誤。
系統時間:2018-01-19 21:23:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!