Я работаю разработчиком java, и я хочу преобразовать CSV-файл в формат .xls 2003, чтобы мой csv был преобразован в .xls-файл в структуру моего. CSV-файл будет какПреобразование csv в xls в java, заботясь о столбце
REC_STATUS,TRADE_ID,SETTLEMENT_DATE,TRADE_EFFECTIVE_DATE,PAYMENT_TYPE,VERSION,BREAK_DOWN_BUCKET,CAUSE,NUM_CASHFLOWS_AFFECTED,PROFILE
Found only in File :B,178942690,01-Feb-16,03-Dec-14,"Coupon",5,NOISY_BREAK_BUCKET,REC_TOOL_ISSUE_PAYMENT_DIRECTION_MISMATCH | REC_TOOL_ISSUE_NOTIONAL_MISMATCH | TRADE_VERSION,1,AVS Offshore
Found only in File :B,197728700,Various,21-Dec-15,"Coupon,(x20)",2,ACTUAL DATA BREAK BUCKET,ACTUAL_DATA_BREAK,20,AVS Offshore
Теперь, как вы можете видеть, что файл .csv является разделенной запятой, но для значения по типу платежа значения, как "Coupon,(x20)"
теперь это значению следует рассматривать как одного, так что логика должна быть как и для пятого столбца, так как индексирование будет указывать начиная с 0, так что позиция столбца фиксируется внутри .csv-файла, поэтому для значения типа оплаты пятого столбца, если значение равно "Coupon,(x20)"
, тогда его следует рассматривать как single не разделяет это значение пятого столбца, поэтому для значения пятого столбца логика должна начинаться с двойных кавычек и заканчиваться двойными кавычками, поэтому, пожалуйста, сообщите, как я буду преобразовывать .csv в .xls, заботясь о пятом столбце, также
то, что я попытался это, как показано ниже, пожалуйста, посоветуйте, как я могу исправить этот код, и преодолеть от проблемы
public class CSVToExcelConverter {
public static void main(String args[]) throws IOException
{
ArrayList arList=null;
ArrayList al=null;
String fName = "test.csv";
String thisLine;
int count=0;
FileInputStream fis = new FileInputStream(fName);
DataInputStream myInput = new DataInputStream(fis);
int i=0;
arList = new ArrayList();
while ((thisLine = myInput.readLine()) != null)
{
al = new ArrayList();
String strar[] = thisLine.split(",");
for(int j=0;j<strar.length;j++)
{
al.add(strar[j]);
}
arList.add(al);
System.out.println();
i++;
}
try
{
HSSFWorkbook hwb = new HSSFWorkbook();
HSSFSheet sheet = hwb.createSheet("new sheet");
for(int k=0;k<arList.size();k++)
{
ArrayList ardata = (ArrayList)arList.get(k);
HSSFRow row = sheet.createRow((short) 0+k);
for(int p=0;p<ardata.size();p++)
{
HSSFCell cell = row.createCell((short) p);
String data = ardata.get(p).toString();
if(data.startsWith("=")){
cell.setCellType(Cell.CELL_TYPE_STRING);
data=data.replaceAll("\"", "");
data=data.replaceAll("=", "");
cell.setCellValue(data);
}else if(data.startsWith("\"")){
data=data.replaceAll("\"", "");
cell.setCellType(Cell.CELL_TYPE_STRING);
cell.setCellValue(data);
}else{
data=data.replaceAll("\"", "");
cell.setCellType(Cell.CELL_TYPE_NUMERIC);
cell.setCellValue(data);
}
//*/
// cell.setCellValue(ardata.get(p).toString());
}
System.out.println();
}
FileOutputStream fileOut = new FileOutputStream("test.xls");
hwb.write(fileOut);
fileOut.close();
System.out.println("Your excel file has been generated");
} catch (Exception ex) {
ex.printStackTrace();
} //main method ends
}
}
Используйте счетчик для столбца. Когда вы столкнулись с пятым столбцом, просто прочитайте два столбца и перейдите в 7-й столбец. –
@NikithaReddy Большое спасибо, может быть, вам понравится, пожалуйста, немного, было бы здорово, если бы вы могли отправить код, я бы отлаживал его, чтобы понять спасибо заранее – sss
@SheetalMohanSharma Я отредактировал и добавил код, пожалуйста, проверьте – sss