在string中find(转义)的引号没有被打印结果

我正在创build一个数据logging器。 它需要以CSV格式logging数据和公式,以便以后导入到Excel中。

我几乎有它的工作,但import到Excel中,我的内部(文字)引文之一失踪。 和(可能因此)我的string被拆分成两个单元格中的string中的以下逗号。

我想在单元格中看到原始公式:

=AVERAGE(INDIRECT(ADDRESS(1,COLUMN())&":"&ADDRESS(ROW()-1,COLUMN()))) 

码:

 String formula = "\"=AVERAGE(INDIRECT(ADDRESS(ROW()-3,COLUMN())&\":\"&ADDRESS(ROW()-1,COLUMN())))\""; dataFile.println(formula); 

结果在Excel中:

 Cell 1: =AVERAGE(INDIRECT(ADDRESS(ROW()-3,COLUMN())&:"&ADDRESS(ROW()-1 Cell 2: COLUMN())))" 

我如何正确地逃避该报价? 我一直认为这只是“\”“,这将解决我的逗号分隔问题吗?

CSV规格要求用双引号转义双引号。 string应该结束

"=AVERAGE(INDIRECT(ADDRESS(ROW()-3,COLUMN())&"":""&ADDRESS(ROW()-1,COLUMN())))"

您将需要添加适当的C#转义,但应该照顾到这个问题。

 string MyString = "\"=AVERAGE(INDIRECT(ADDRESS(ROW()-3,COLUMN())&\"\":\"\"&ADDRESS(ROW()-1,COLUMN())))\"" 

http://tools.ietf.org/html/rfc4180

  1. 如果使用双引号将字段括起来,则出现在字段内的双引号必须通过在另一个双引号之前进行转义来进行转义。 例如:

    “AAA级”, “B”, “BB”, “CCC”