2016-07-23 4 views
0

Я печатаю некоторые данные в CSV-файл, используя Apache Commns CSV. Одно из полей содержит 15-значное число и имеет тип String. Это поле печатается как экспоненциальное число в CSV вместо полного числа. Я знаю, Excel делает это, но есть ли способ в java, чтобы напечатать его как полный номер.Как преобразовать экспоненты в файл csv из Java

Я ничего особенного не делаю. Первоначально я думал, что об этом позаботятся Commons CSV.

public void createCSV(){ 
    inputStream = new FileInputStream("fileName"); 
    fileWriter = new FileWriter("fileName"); 
    csvFileFormat = CSVFormat.Excel.withHeader("header1", "header2"); 
    csvFilePrinter = new CSVPrinter(fileWriter, csvFileFormat); 

    for(List<UiIntegrationDTO dto: myList>){ 
    String csvData = dto.getPolicyNumber(); 
    csvFilePrinter.PrintRecord(csvData); 
    } 
} 
+0

Нам нужно посмотреть, какой код вы написали. Я предполагаю, что вы хотите преобразовать число, о котором идет речь, как 'BigDecimal', но нам действительно нужен код. – markspace

+0

@markspace. Я обновил свой пост. Вот как я это делаю. В основном я вызываю этот метод для моего действия Struts2. Так вот как я получаю данные от POJO и записываю их в CSV. Я хочу, чтобы номер политики отображался как полный номер, например 123456789101112, не как показатель степени. – Jaykumar

+0

'dto.getPolicyNumber()' возвращает строку, не так ли? Если это так, то преобразование в экспоненциальное обозначение происходит не в коде, который вы указали, а где-то внутри 'dto.getPolicyNumber()'. –

ответ

1

Prepend апостроф

Насколько я понял из обсуждения в комментариях, речь идет об интерпретации Excel из CSV-файла, но сам файл содержит все необходимые данные.

Думаю, csvFilePrinter.PrintRecord("'" + csvData); должен помочь. Apostrophe требует, чтобы Excel интерпретировал поле как строку, а не как число.

+0

Да, это спасло мою жизнь. Спасибо Руслан. – Jaykumar