当前位置: 首页 > 知识库问答 >
问题:

Apache POI 3.8版是否有助于解决“org.Apache.POI.poifs.fileSystem.OfficeXMLFileException”?

梁丘俊材
2023-03-14
public class WritetoExcel {

    private static List<List<XSSFCell>> cellGrid;

    public static void convertExcelToCsv() throws IOException {
        try {

            cellGrid = new ArrayList<List<XSSFCell>>();
            FileInputStream myInput = new FileInputStream("List_U.xlsx");
            POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);
           // XSSFWorkbook myWorkBook = new XSSFWorkbook(myFileSystem);
            Workbook workbook = null;
            try {
                workbook = WorkbookFactory.create(myInput);
            } catch (InvalidFormatException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            Sheet mySheet = workbook.getSheetAt(0);
            Iterator<?> rowIter = mySheet.rowIterator();

            while (rowIter.hasNext()) {
                XSSFRow myRow = (XSSFRow) rowIter.next();
                Iterator<?> cellIter = myRow.cellIterator();
                List<XSSFCell> cellRowList = new ArrayList<XSSFCell>();
                while (cellIter.hasNext()) {
                    XSSFCell myCell = (XSSFCell) cellIter.next();
                    cellRowList.add(myCell);
                }
                cellGrid.add(cellRowList);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        File file = new File("newFile.csv");
        PrintStream stream = new PrintStream(file);
        for (int i = 0; i < cellGrid.size(); i++) {
            List<XSSFCell> cellRowList = cellGrid.get(i);
            for (int j = 0; j < cellRowList.size(); j++) {
                XSSFCell myCell = (XSSFCell) cellRowList.get(j);
                String stringCellValue = myCell.toString();
                stream.print(stringCellValue + ";");
            }
            stream.println("");
        }
    }

    public static void main(String[] args) {
        try {
            convertExcelToCsv();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

共有1个答案

司空赞
2023-03-14

这条线

POIFSFileSystem myFileSystem=新建POIFSFileSystem(myInput);

正如POIFSFileSystem的文档中所述,它在HSSFWorkbook上工作,而没有提到XSSFWorkbook

 类似资料:
  • 问题内容: 我需要一个帮助者来了解是否已加载属性,以避免这种情况。可能吗? 问题答案: 实际上有两种方法。 要确定惰性 属性 是否已初始化,您可以使用实体实例和属性名称作为参数来调用方法。 要查明是否已初始化惰性 集合 (或实体)(如您的示例中所示),可以使用集合(实体)实例作为参数来调用。

  • 问题内容: 如果我希望在一个对内存敏感的应用程序中的数千个实例中使用一个类,那么如果我将静态功能分解为静态成员,是否有帮助? 我想象静态方法和变量每个类存储一次,而对于非静态成员,每个实例必须存储一些东西。 使用成员变量,似乎很清楚,但是为方法存储了哪种数据? 我正在使用Java,但是我想像一些通用规则也可以在其他托管环境(例如.NET)中应用。 问题答案: 静态方法与非静态(实例)方法之间的唯一

  • 经过这么多的提问,我了解到, 封装是关于保护不变量和隐藏实现细节。 抽象与分离接口和实现有关。 从课堂java培训中,我了解到,封装有以下优点, 为什么封装是你的朋友? [1] 实现独立于功能。拥有接口文档的程序员可以独立实现模块或ADT的新版本。新的、更好的实现可以取代旧的实现。 [2] 封装防止Doug编写损坏模块内部数据的应用程序。在现实编程中,封装缩短了调试时间。很多 [3]ADT可以保证

  • 我知道苹果发布了基于蓝牙4.0协议的iBeacon。 在任何蓝牙设备中,如果我们使用以下代码对设备进行编码: 表示呈现此蓝牙设备是iBeacon蓝牙设备。 我的问题是,如果我定义了自己的协议,这意味着我会改变它 是否有一种可能性,我可以通过iphone识别我自己定义的蓝牙设备,而无需在iphone上添加识别设备。 苹果是否支持定制ibeacon? 编辑根据davidgyoung所说,我对stack

  • 我看到一个解决方案,我不能理解是什么立场背后的解决方案,我想理解为什么解决方案是正确的(什么立场背后的想法),问题是“最小移动到相等的数组元素”。我看到的解决方案是: 我不明白为什么元素之和减去最小元素乘以数组长度就能得到问题的解? 编辑:这是对问题的解释:给定一个大小为n的非空整数数组,求出使所有数组元素相等所需的最小移动次数,其中一个移动是将n-1个元素递增1。示例: 输入:[1,2,3]

  • 问题内容: 根据您将 final_修饰符应用于什么,它在java中会有不同的结果。我想知道的是,它是否_还能 帮助编译器创建更有效的字节码。我想这个问题深入到JVM如何工作,并且可能是特定于JVM的。 因此,以您的专业知识,以下任何一项对编译器有帮助吗?还是仅出于正常的Java原因而使用它们? 期末课程 最终方法 最终领域 最终方法参数 谢谢! 编辑:感谢您的所有答案!请注意,正如@Zohaib所