2016-05-23 33 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