Java 将Excel数据获取为CSV

Java 将Excel数据获取为CSV,java,excel,csv,io,jexcelapi,Java,Excel,Csv,Io,Jexcelapi,请看一下下面的代码。我正在使用jexcelapi import java.io.*; import jxl.*; import java.util.*; class ConvertCSV { public static void main(String[] args) { try { //File to store data in form of CSV File f = new File("input.csv"); Outpu

请看一下下面的代码。我正在使用
jexcelapi

import java.io.*;
import jxl.*;
import java.util.*;

class  ConvertCSV
{
  public static void main(String[] args) 
  {
    try
    {
      //File to store data in form of CSV
      File f = new File("input.csv");

      OutputStream os = (OutputStream)new FileOutputStream(f);
      String encoding = "UTF8";
      OutputStreamWriter osw = new OutputStreamWriter(os, encoding);
      BufferedWriter bw = new BufferedWriter(osw);

      //Excel document to be imported
      String filename = "C:/Users/yohan/Documents/NetBeansProjects/ExcelTest/input.xlsx";
      WorkbookSettings ws = new WorkbookSettings();
      ws.setLocale(new Locale("en", "EN"));
      Workbook w = Workbook.getWorkbook(new File(filename),ws);

      // Gets the sheets from workbook
      for (int sheet = 0; sheet < w.getNumberOfSheets(); sheet++)
      {
        Sheet s = w.getSheet(sheet);

        bw.write(s.getName());
        bw.newLine();

        Cell[] row = null;

        // Gets the cells from sheet
        for (int i = 0 ; i < s.getRows() ; i++)
        {
          row = s.getRow(i);

          if (row.length > 0)
          {
            bw.write(row[0].getContents());
            for (int j = 1; j < row.length; j++)
            {
              bw.write(',');
              bw.write(row[j].getContents());
            }
          }
          bw.newLine();
        }
      }
      bw.flush();
      bw.close();
    }
    catch (UnsupportedEncodingException e)
    {
      System.err.println(e.toString());
    }
    catch (IOException e)
    {
      System.err.println(e.toString());
    }
    catch (Exception e)
    {
      System.err.println(e.toString());
    }
  }
}

我怎样才能解决这个问题?如果我不能用这个API做到这一点,请随时用不同的API回答。请帮助

你可以考虑使用。它支持ms excel的最新版本。以下代码有助于-

将文件扩展名改为.xls而不是.xlsx进行测试。它可能会帮助你。jxl支持xlsx格式吗?许多问题和答案表明jxl支持旧格式而不是xlsx?@Jayan:是的,可能是..这就是为什么我更新它,如果可能的话,要求使用不同的API jxl支持xlsx,但我认为不完全支持。你试过不同版本的电影吗?例如,是否在旧版本的Excel中保存?@AlexandreLavoie:是的,但它应该同时支持这两种格式。不仅仅是一个10年前的版本
jxl.read.biff.BiffException: Unable to recognize OLE stream