java - 获取 CSV 格式的 Excel 数据

标签 java excel csv io jexcelapi

请看下面的代码。我正在使用 JExcel API

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());
    }
  }
}

我不想将数据写入 CSV 文件,但我必须将“Fields”加载到名为“filedsBuffer”的 StringBuffer 中,并将数据作为逗号分隔值加载到名为“dataBuffer”的 StringBuffer 中.

但是,当我运行该程序时,出现以下异常。

jxl.read.biff.BiffException: Unable to recognize OLE stream

我该如何解决这个问题?如果我无法使用此 API 执行此操作,请随时使用不同的 API 来回答。请帮忙

最佳答案

您可以考虑使用apache-poi 。它支持最新版本的 ms-excel。以下代码可以帮助get started -

关于java - 获取 CSV 格式的 Excel 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13597965/

相关文章:

java - 用于创建 IVY 存储库的 JAR 选择

java - 基于 SOAP 的 Web 服务中的身份验证和角色 (Java)

Python,在 excel 工作表中搜索列中的特定字符串并将这些行提取到文本文件

python - 在 Python 中以不同的顺序写出 CSV 列

sql - Azure 从 Azure 文件服务位置将 csv 文件批量导入 Azure SQL Server

java - 从线程中释放资源

java - 如何使用 POI 链接 Excel 文件中的图像

c++ - 在 Excel XLOPER 中通过 char* 返回日语字符

python - Hadoop Reducer 没有结合所有 map 作业

Java:没有返回的三元。 (用于方法调用)