2016-05-23 44 views
1

我試圖從一個Excel文件中的幾個列中刪除回車,該文件是從Filemaker數據庫導出的,最終目標是從該文件創建SQL插入語句。在Excel中使用AppleScript過濾出回車

我發現了一些在Excel中刪除它們的例子,但是我還沒有找到可以工作的Applescript等價物。一個建議是使用Excel中的clean函數CLEAN(text_with_returns)。我想我可以在表中創建一個新的列,創建乾淨的版本,然後刪除舊的列,但似乎應該有一個更優雅的解決方案?

我發現這串在Excel AppleScript的指南PDF:

replace (range "K:K" of worksheet "Sheet1") what "//r" replacement " " ¬ 
    search order by columns 

我只是還沒有找到正確的形式被替換的項目。試過:「Char(10)」,Chr(10),「// n」。

回答

0

使用其中之一AppleScript常量(return,linefeed)。

replace (range "K:K" of worksheet "Sheet1") what return replacement " " search order by columns -- this replace the Mac line breaks, equal Chr(13) in VBA 

replace (range "K:K" of worksheet "Sheet1") what linefeed replacement " " search order by columns -- this replace the unix line breaks, equal Chr(10) in VBA 
0

雖然從FMP獲得地獄客場始終是值得讚賞的,你這樣做,其中的方式聽起來相當可怕。您不會試圖將Excel電子表格中的數據編碼到龐大的SQL腳本中?如果是這樣,那只是大量的數據損壞和其他意外事件發生。

您應該編寫一個SQL腳本的唯一任務是創建數據庫及其表;數據庫結構固定安全,易於硬編碼。將數據遷移到這些表的正確方法是使用對新數據庫的ODBC調用,將原始數據(例如parameters)傳遞到INSERT語句,例如, (僞):

cursor.execute("insert into products(id, name) values (?, ?)", productID, productName) 

它的年以來,我不得不去FMP附近的任何地方,所以我不能勸的細節,但它可以talk directly to other database systems via ODBC,在這種情況下,你可以做整個數據傳輸從FMP本身來看,這比將數據導出爲啞中間格式更快更簡單,並且可以編寫一個腳本來咀嚼。

+0

謝謝Foo。我沒有建立FM數據庫,我只被要求報告。我曾經查看過ODBC連接,我不記得爲什麼我保留了。我會重新審視這個選項,因爲它肯定會比這個混亂更好。 – Gordon