Przykład od Simona nie zadziałał dla mnie i podejrzewam, że jest to różnica językowa. W C# oto jak wygląda mój roboczy ciąg formatu:
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);
a tak wygląda plik wyjściowy:
="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,=""
Jak widać, format w pliku wyjściowym to ="VALUE",
a nie "=""VALUE""",
, co moim zdaniem może być konwencją Visual Basic.
Używam programu Excel 2010. Nawiasem mówiąc, Google Sheets nie otworzy/konwertuje pliku sformatowanego w ten sposób. Będzie działać, jeśli usuniesz znak równości, a więc "VALUE",
- Excel nadal będzie otwierał plik, ale zignoruje fakt, że chcesz, aby twoje kolumny były ciągami znaków.