2013-08-07 2 views
1

Я использую this library для преобразования блока в CSV. Однако, когда он встречает строку с запятой, она формирует эту строку. Обычно не проблема, за исключением того, что фигурные скобки, похоже, запутывают Excel.Как «размотать» строку?

Итак, {This, is a test} превращается в | {this | is a test} | (каждая сторона запятой помещается в отдельные ячейки).

Сначала мне показалось, что мне нужно сбежать от запятой, но выясняется, что мне нужно сделать, это превратить фигурные фигурные скобки в кавычки. Есть ли быстрый или REBOL-рекомендованный способ сделать это?

ответ

4

Цель 'MOLD в% csv.r - переносить значения, содержащие запятые, в двойные кавычки.

Но, к сожалению, MOLD помещает строки длиной более 50 символов в фигурные скобки вместо двойных кавычек для лучшей читаемости.

Я не знаю, как влияет на это поведение, так что я бы просто заменить «ПРЕССФОРМА в Item: mold Item и Heading: mold Heading с» DBL-Quote, который бы просто определить как

dbl-quote: func[s][rejoin [{"} s {"}]] 
2

Используйте csv-tools.r вместо этого. Он имеет встроенную функциональность и проверен как совместимый с Excel. Он будет работать с Rebol 2 и 3 и будет использоваться в течение многих лет.

+0

Функция to-csv в csv-tools.r, похоже, имеет проблемы с вложенными блоками, такими как '[[" one "" two "" three "] [" two "" two "" three "]]'. –

+0

Функция 'to-csv' является однострочным преобразователем, как указано в документации в файле. Отдельные строки CSV не имеют вложенных блоков, они концептуально представляют собой серию отдельных значений. Используйте функцию 'map-each' с' to-csv' для создания блока строк, затем 'write', чтобы записать их в файл. – BrianH