O exemplo de Simon não funcionou para mim e suspeito que seja uma diferença de idioma. Em C #, aqui está a aparência da minha string de formato de trabalho:
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);
e é assim que o arquivo de saída se parece:
="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,=""
Como pode ser visto, o formato no arquivo de saída ="VALUE",
não é o "=""VALUE""",
que acredito ser uma convenção do Visual Basic.
Estou usando o Excel 2010. Aliás, o Planilhas Google não abrirá / converterá um arquivo formatado dessa maneira. Funcionará se você remover o sinal de igual assim "VALUE",
- o Excel ainda abrirá o arquivo, mas ignorará o fato de que você deseja que suas colunas sejam cadeias de caracteres.