2016-04-28 21 views
1

Ich versuche, eine CSV-Datei zu konvertieren Datei mit dem folgenden Code xlsx:EPPlus csv konvertiert und fehlt das Komma aus einem Doppel

 string csvFileName = path; 

     string nomeArquivo = Path.Combine(serverpath, RandomString(10) + ".xlsx"); 

     string worksheetsName = "b2w"; 
     bool firstRowIsHeader = false; 
     var format = new ExcelTextFormat(); 
     format.Delimiter = ';'; 
     format.EOL = "\n";    // DEFAULT IS "\r\n"; 
              // format.TextQualifier = '"'; 

     using (ExcelPackage package = new ExcelPackage(new FileInfo(nomeArquivo))) 
     { 
      ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(worksheetsName); 
      worksheet.Cells["A1"].Value = "Status Pedido"; 
      worksheet.Cells["B1"].Value = "Site Origem"; 
      worksheet.Cells["C1"].Value = "Número Pedido"; 
      worksheet.Cells["D1"].Value = "Número Entrega"; 
      worksheet.Cells["E1"].Value = "Total Pedido"; 
      worksheet.Cells["F1"].Value = "CPF"; 
      worksheet.Cells["G1"].Value = "Nome Completo"; 
      worksheet.Cells["H1"].Value = "Endereço"; 
      worksheet.Cells["I1"].Value = "Número"; 
      worksheet.Cells["J1"].Value = "Complemento"; 
      worksheet.Cells["K1"].Value = "Referencia"; 
      worksheet.Cells["L1"].Value = "Bairro"; 
      worksheet.Cells["M1"].Value = "CEP"; 
      worksheet.Cells["N1"].Value = "Estado"; 
      worksheet.Cells["O1"].Value = "Cidade"; 
      worksheet.Cells["P1"].Value = "Merda1"; 
      worksheet.Cells["Q1"].Value = "Telefone Fixo"; 
      worksheet.Cells["R1"].Value = "Telefone Celular"; 
      worksheet.Cells["S1"].Value = "Merda2"; 
      worksheet.Cells["T1"].Value = "Sku Lojista"; 
      worksheet.Cells["U1"].Value = "Merda3"; 
      worksheet.Cells["V1"].Value = "Quantidade"; 
      worksheet.Cells["W1"].Value = "Valor unitário"; 
      worksheet.Cells["X1"].Value = "Valor Frete"; 
      worksheet.Cells["Y1"].Value = "Data Entrega"; 
      worksheet.Cells["Z1"].Value = "Valor Adicional"; 
      worksheet.Cells["A2"].LoadFromText(new FileInfo(csvFileName), format, OfficeOpenXml.Table.TableStyles.Medium27, firstRowIsHeader); 
      package.Save(); 

      B2wExcelInsertPrimeiro InsertData = new B2wExcelInsertPrimeiro(nomeArquivo); 
      InsertData.Insert(); 
     } 

Nach der Konvertierung, speichert es die Datei aber die doppelten Werte wie 319,98 werden als 31998 gespeichert.

Was mache ich falsch?

Antwort

1

Sieht aus wie ein CultureInfo Problem. In den USA verwenden wir zum Beispiel . anstelle von ,, um den Dezimalwert eines Doppelzeichens zu markieren. Wenn Sie also eine Nummer importieren, wird das Komma ignoriert. Wenn Sie eine Kultur verwenden, die NumberDecimalSeparator auf ein Komma gesetzt hat, sollte es funktionieren. Zum Beispiel:

format.Culture = new CultureInfo("de-DE"); //Using German cultureinfo 

sollte das Problem lösen. Sie können eine gute Liste der Kulturen von hier:

http://www.csharp-examples.net/culture-names/

+0

Das war es! Sich verändernde Kulturen wirkten wie ein Zauber. –