Приклад від Саймона для мене не працював, і я підозрюю, що це мовна різниця. У C # ось як виглядає мій рядок робочого формату:
var linebreak = (i++ == list.Count) ? "" : "\r\n";
csv += String.Format("=\"{0}\",{1},{2},{3},=\"{4}\"{5}",
item.Value, item.Status, item.NewStatus, item.Carrier, c.Status, linebreak);
і ось як виглядає вихідний файл:
="abababababab",INVALID,INVALID,USPS,="",
="9500100030492359000149",UNKNOWNSTATUS,DELIVERED,USPS,="3"
="9500100030492359000149",UNKNOWNSTATUS,DELIVERED,USPS,="3"
="9500100030492359000149",UNKNOWNSTATUS,DELIVERED,USPS,="3"
="9500100030492359000149",UNKNOWNSTATUS,DELIVERED,USPS,="3"
="9400110200793482982812",UNKNOWNSTATUS,DELIVERED,USPS,="3"
="9400110200793482982812",UNKNOWNSTATUS,DELIVERED,USPS,="3"
="9400110200793000216184",UNKNOWNSTATUS,INVALID,USPS,=""
Як видно, формат у вихідному файлі - це ="VALUE",
не те, "=""VALUE""",
що, на мою думку, може бути умовою Visual Basic.
Я використовую Excel 2010. Між іншим, Google Sheets не відкриє / не перетворить файл, відформатований таким чином. Це спрацює, якщо ви видалите таким чином знак рівності "VALUE",
- Excel все одно відкриє файл, але ігнорує той факт, що ви хочете, щоб ваші стовпці були рядками.