Eu tive um problema parecido algum tempo atrás, no entanto, importando de CSV para uma base de dados MySQL
Deixe eu te mostrar um exemplo prático. Se for o mesmo que ocorrer com voce, poderá tirar uma base para a solução:
if (colunas[3].Substring(0,5) == "Ordem")
{
_docto = colunas[2].Trim().PadLeft(8,
'0');
_numCarga = colunas[3].Trim().PadLeft(8,'0');
_material = colunas[4].Trim().PadLeft(16,'0');
_qtde = Convert.ToDouble(colunas[5]);
}
No arquivo csv eu estava tendo um problema para apontamentos em caso de Ordem. Isto porque o arquivo de saída estava inserindo aspas no csv. No meu exemplo, lá em Substring(0,5) eu estava tendo um problema, pois como a contagem dos caracteres se inicia a
partir do zero, a palavra "Ordem" ficaria reduzida a apenas "rdem", e já parava por ai. No caso de um arquivo txt, normalmente não temos a saída das aspas.
Convém você abrir o arquivo csv de saída e verificar isto, Saint. Caso a referencia seja perdida, com as aspas, durante esta contagem do substring (meu caso), vai ter este problema. A solução eu tive alterando de Substring(0,5) para Substring(1,5), evitando
alterar o arquivo de saída
Não sei se ajuda.. Mas espero ser ao menos uma luz
Até mais