2015-05-20 7 views
6

Il mio ufficio Excel è confirate in formato Francese (separatore decimale = Punto e separatore delle migliaia = spazio) carico un foglio con file CSV con il francese numero decimale:Come si modifica il formato di un numero decimale in EpPlus?

Il mio codice:

var range = sheet.Cells["A3"].LoadFromText(new FileInfo(fileCSVFull), format, TableStyles.Medium27, true); 
var numStyle = package.Workbook.Styles.CreateNamedStyle("TableNumber"); 
numStyle.Style.Numberformat.Format = "# ##0,00"; 

var tbl = sheet.Tables[0]; 
tbl.ShowTotal = true; 
tbl.Columns[0].TotalsRowLabel = "Total"; 

tbl.Columns[1].TotalsRowFunction = RowFunctions.Sum; 
tbl.Columns[1].DataCellStyleName = "TableNumber"; 
tbl.Columns[2].TotalsRowFunction = RowFunctions.Sum; 
tbl.Columns[2].DataCellStyleName = "TableNumber"; 
tbl.Columns[3].TotalsRowFunction = RowFunctions.Sum; 
tbl.Columns[3].DataCellStyleName = "TableNumber"; 

string numcell = "E4:E"+(3 + nbline); 
sheet.Cells[numcell].Formula = "B4*C4"; 
sheet.Cells[numcell].StyleName = "TableNumber"; 

sheet.View.ShowGridLines = false; 
sheet.Calculate(); 
sheet.Cells[sheet.Dimension.Address].AutoFitColumns(); 

Ma ho un'eccezione su "sheet.Calculate();" Cosa succede se cambio il formato del mio numero decimale che va bene il mio file XLSX è generato ma ho un errore quando apro Excel poiché il mio formato decimale non è riconosciuto dalla mia versione francese di Excel.

+2

Apri Excel e formatta una cella nel modo desiderato, quindi fai clic con il tasto destro del mouse sulla cella e scegli l'opzione "Formatta celle" e seleziona l'opzione "Personalizza". Vedrai che Excel si aspetta il formato numerico per ottenere l'output desiderato. – Anthony

+0

Grazie per la risposta, ma io genera 50 file al giorno e non posso chiedere al mio cliente di fare questa azione ogni volta! Come EPPLUS che tiene conto delle impostazioni regionali? – FredG

+0

Sto dicendo che * tu * puoi fare ciò per determinare quale versione francese di Excel imposta per il testo in formato numerico per il formato che desideri e quindi inserire quel numero nel tuo codice. – Anthony

risposta

3

Ho affrontato il problema simile. L'impostazione della stringa di formato su "#,##0.00" ha fatto il trucco nel mio caso.

+1

Mi aspetto che EPPlus, a differenza di Excel, utilizzi sempre le impostazioni internazionali en-US quando interpreta le stringhe di formato numerico personalizzate. Ciò significa che la stringa di formato dovrebbe usare ',' (virgola) per mille separatori e '.' (punto) per il separatore decimale. –

Problemi correlati