Het voorbeeld van Simon werkte niet voor mij, en ik vermoed dat het een taalverschil is. In C# ziet mijn werkende format string er zo uit:
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);
en zo ziet het uitvoerbestand er uit:
="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,=""
Zoals te zien is, is het formaat in het uitvoerbestand ="VALUE",
en niet "=""VALUE""",
, waarvan ik denk dat het een Visual Basic conventie is.
Ik gebruik Excel 2010. Overigens, Google Sheets zal een bestand dat op deze manier is geformatteerd niet openen/converteren. Het zal werken als je het gelijkheidsteken verwijdert dus "VALUE",
- Excel zal nog steeds het bestand openen maar het feit negeren dat je wilt dat je kolommen strings zijn.