.csv 파일로 .xls를 변환했습니다. 코드가 올바르게 작동하지만 마지막 출력이 마지막 쉼표로 표시됩니다. 내 코드에서 쉼표를 사용하고 싶지 않습니다. 예를 들어 내 출력 ss, dd, ee처럼 보이지만 마지막 쉼표가 필요하지 않습니다. 어떻게 수정합니까?.xls를 .csv java로 변환합니다.
여기에 코드
import java.io.*;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
class convert {
static void convertToXls(File inputFile, File outputFile)
{
// For storing data into CSV files
StringBuffer cellDData = new StringBuffer();
String cellDDataString=null;
try
{
FileOutputStream fos = new FileOutputStream(outputFile);
// Get the workbook instance for XLS file
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(inputFile));
// Get first sheet from the workbook
HSSFSheet sheet = workbook.getSheetAt(0);
Cell cell;
Row row;
// Iterate through each rows from first sheet
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext())
{
row = rowIterator.next();
// For each row, iterate through each columns
System.out.println("row"+row);
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext())
{
cell = cellIterator.next();
System.out.println("cell" +cell);
switch (cell.getCellType())
{
case Cell.CELL_TYPE_BOOLEAN:
cellDData.append(cell.getBooleanCellValue() + ",");
break;
case Cell.CELL_TYPE_NUMERIC:
cellDData.append(cell.getNumericCellValue() + ",");
break;
case Cell.CELL_TYPE_STRING:
cellDData.append(cell.getStringCellValue() + ",");
System.out.println(cell.getStringCellValue());
break;
case Cell.CELL_TYPE_BLANK:
cellDData.append("" + ",");
break;
default:
cellDData.append(cell + ",");
}
}
cellDData.append("\n");
}
//cellDData.append("\n");
//String out=cellDData.toString();
//System.out.println("res"+out);
//String o = out.substring(0, out.lastIndexOf(","));
//System.out.println("final"+o);
fos.write(cellDData.toString().getBytes());
//fos.write(cellDDataString.getBytes());
fos.close();
}
catch (FileNotFoundException e)
{
System.err.println("Exception" + e.getMessage());
}
catch (IOException e)
{
System.err.println("Exception" + e.getMessage());
}
}
public static void main(String[] args)
{
File inputFile = new File("Book1.xls");
File outputFile = new File("output1.csv");
convertToXls(inputFile, outputFile);
}
}
항상 쉼표 뒤에 항목이 추가되므로 예상됩니다. 프로세스가 완료되면 StringBuffer의 마지막 문자를 수동으로 잘라내거나 "마지막 항목이 아닌 경우에는 쉼표를 추가하고 그렇지 않으면 아무것도 추가하지 않습니다."와 같은 검사를 할 수 있습니다. – Kon
어떻게해야할까요? 간단히 말해 주시겠습니까 – sakthi