2017-10-30 5 views
-1

これは私のコードで、私はcppファイルをepplusで2013年に渡しています。問題は私が文字列829/10/17のデータを持っているということです。エラーepplus form csv to excel

はいはいAドスエステES MI codigo:それは誰かが私を助けることができるthis way -390883

なり秀でるに進み、正しいデータが829/10/17

string excelFileName = rutasalida + "DiarioOCR " + fechafilename + "-" + horatotalfilename + ".xlsx"; 

string worksheetsName = "Hoja1"; 

bool firstRowIsHeader = false; 

var format = new ExcelTextFormat(); 

format.Culture = new CultureInfo("es-ES"); 
format.Delimiter = ';'; 
format.EOL = "\n"; 
format.Encoding = new UTF8Encoding(); 
format.SkipLinesEnd = 1; 

using (ExcelPackage package = new ExcelPackage(new FileInfo(excelFileName))) 
{ 
    ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(worksheetsName); 
    worksheet.DefaultColWidth = 20; 
    worksheet.Cells["A1:BI"].Style.HorizontalAlignment = ExcelHorizontalAlignment.Right; 
    worksheet.Cells["N:N"].Style.Numberformat.Format = "0.00"; 
    worksheet.Cells["W:W"].Style.Numberformat.Format = "@";  //<---- 
    worksheet.Cells["AD:AD"].Style.Numberformat.Format = "0.00"; 
    worksheet.Cells["AF:AF"].Style.Numberformat.Format = "0.00"; 
    worksheet.Cells["AL:AL"].Style.Numberformat.Format = "0.00"; 
    worksheet.Cells["AN:AN"].Style.Numberformat.Format = "0.00"; 
    worksheet.Cells["AS:AS"].Style.Numberformat.Format = "0.00"; 
    worksheet.Cells["AU:AU"].Style.Numberformat.Format = "0.00"; 
    worksheet.Cells["BA:BA"].Style.Numberformat.Format = "0.00"; 
    worksheet.Cells["BB:BB"].Style.Numberformat.Format = "0.00"; 
    worksheet.Cells["BF:BF"].Style.Numberformat.Format = "0.00"; 

    worksheet.Cells["J:J"].Style.Numberformat.Format = DateTimeFormatInfo.CurrentInfo.ShortDatePattern; 
    worksheet.Cells["k:k"].Style.Numberformat.Format = DateTimeFormatInfo.CurrentInfo.ShortDatePattern; 
    worksheet.Cells["L:L"].Style.Numberformat.Format = DateTimeFormatInfo.CurrentInfo.ShortDatePattern; 
    worksheet.Cells["M:M"].Style.Numberformat.Format = DateTimeFormatInfo.CurrentInfo.ShortDatePattern; 

    worksheet.Cells["A1"].LoadFromText(new FileInfo(csvFileName), format, OfficeOpenXml.Table.TableStyles.None, firstRowIsHeader); 

    package.Save(); 
} 


オリジナルOPでなければなりませんy estoy pasando un archivo csv a exc私puedeのayudar、エルダトcorrecto alguienエル2013詐欺epplusのy elのproblema QUE・テンゴES QUEエルficheroのcsvテンゴエルダトエン文字列829/10/17ペロのcuandoのパサエクセルSE convierteデエスタフォーマ enter image description here -390883

debe SER 829/10/17

+2

これは英語のサイトです。あなたはここでより良い運を持っているかもしれません:https://es.stackoverflow.com –

+0

申し訳ありません私の英語は悪いです、私の問題はExcelファイルです。列Wはタイプテキストです。 –

+0

はcsvファイルで、データは829/10/17ですが、Excelファイルでは-390883なので、なぜわかりませんか? –

答えて

0

回避策/解決策は:

  1. Stringで使用DataTypes、(あなたと同じ場合であってもよい)の例EPPlus converts Excel Spreadsheet column to random negative valueを参照します。
  2. あなたのcsvの各/を別の文字に置き換えてください。他の文字はどこにも表示されず、インポート後に/に置き換えてください。

  3. some of the solutions here(問題が同じソースではない場合でも)。

  4. EPPを使用せずにファイルを読み取り、EPPを使用してファイル(https://stackoverflow.com/a/30710663/2707864)を作成します。

  5. other projectsを試してみてください。

+0

サンチョさん、ありがとうございましたあなたの投稿は私にそれを解決する鍵を与えました –

+0

@ALTJ - 私はあなたがこれを解決してうれしいです(私はアイテム1と推測します)。将来のユーザーを参照するために、質問の編集、別の回答、またはこれを編集する(歓迎する以上のことです)のいずれかで、実際の解決策を何とか投稿してください。 –

0

その私の解決策

VAR形式=新しいExcelTextFormat();

   format.Culture = new CultureInfo("es-ES"); 
       format.Delimiter = ';'; 
       format.EOL = "\n"; 
       format.Encoding = new UTF8Encoding(); 
       format.DataTypes = new eDataTypes[] { eDataTypes.Unknown, eDataTypes.Unknown, 
       eDataTypes.Unknown, eDataTypes.Unknown, eDataTypes.Unknown, eDataTypes.Unknown, 
       eDataTypes.Unknown, eDataTypes.Unknown, eDataTypes.Unknown, eDataTypes.Unknown, 
       eDataTypes.Unknown, eDataTypes.Unknown, eDataTypes.Unknown, eDataTypes.Unknown, 
       eDataTypes.Unknown, eDataTypes.Unknown, eDataTypes.Unknown, eDataTypes.Unknown, 
       eDataTypes.Unknown, eDataTypes.Unknown, eDataTypes.Unknown, eDataTypes.Unknown, 
       eDataTypes.String};//<--- Column W 
       format.SkipLinesEnd = 1;