首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将.xls转换为.csv java

将.xls转换为.csv java
EN

Stack Overflow用户
提问于 2014-04-14 14:15:35
回答 6查看 5.5K关注 0票数 0

我把.xls转换成.csv文件,最后输出的最后一个逗号将出现在代码中,我不想在我的代码中出现最后一个逗号,例如我的输出看起来像ss,dd,ee,但我不需要最后一个逗号,如何纠正它。

在此处输入代码

代码语言:javascript
复制
 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);

    }
    }
EN

Stack Overflow用户

发布于 2014-04-14 14:45:33

尝尝这个

代码语言:javascript
复制
cellDData.replace(cellDData.length() - 1, cellDData.length(), "");

就在行之前

代码语言:javascript
复制
cellDData.append("\n");
票数 0
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23053151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档