java - 如何编写Excel文件

标签 java excel

嗨,我想创建一个 Excel 文件,我需要从 java 应用程序添加数据,并且需要使用 java 应用程序再次查看这些数据。我使用 java jxl 库文件来完成此操作。 我可以打开用 MS excel 创建的 excel 文件,它打开没有任何问题。但是我无法打开由我的 java 应用程序创建的 excel 文件。因为我认为原因是我的应用程序没有创建 excel 文件。它只是创建带有“.xls”的文件扩展名。无论如何我都可以在 Excel 中打开文件。

当我打开由我的应用程序创建的文件时,使用 ms excel 发生错误“文件格式和扩展名不匹配。等等”

但 MS Excel 无论如何都会打开该文件。

当我要保存它时,它显示“如果将其保存为文本制表符分隔,则工作簿中的某些功能可能会丢失”

如何解决这个问题

创建 xls 文件的代码。请帮助我完成此代码

try {
         WritableWorkbook copy=Workbook.createWorkbook(new File("C:\\Users\\FxMax\\Desktop\\demo.xls"));//create file
            WritableSheet Wsheet = copy.getSheet(0); //create sheet
            TableModel mode=table.getModel(); //create table model for jtable
            String s=mode.getValueAt(0, 0).toString();//get value at 0,0 cell @jtable

            copy.write();
            copy.close();
    } catch (Exception e) {
    }

这是用于读取文件的代码

JFileChooser choose = new JFileChooser();
    choose.setFileSelectionMode(JFileChooser.FILES_ONLY);

    FileNameExtensionFilter fileF = new FileNameExtensionFilter("Excel file", "xls");
    choose.setFileFilter(fileF);

    int res = choose.showOpenDialog(jFileChooser1);

    if (res == JFileChooser.APPROVE_OPTION) {

        //File file =choose.getSelectedFile(); //getFile     
        String filePath = choose.getSelectedFile().getAbsolutePath();//getFilePath
        File f = new File(filePath);
        //System.out.println(filePath);
        Workbook w;
        try {

            w = Workbook.getWorkbook(f);
            Sheet sheet = w.getSheet(0);

            for (int i = 1; i < sheet.getRows(); i++) {

                String cell0 = sheet.getCell(0, i).getContents();

                String cell1 = sheet.getCell(1, i).getContents();

                String f1 = sheet.getCell(2, i).getContents();
                float cell2 = Float.valueOf(f1);
                float cell3 = Float.valueOf(sheet.getCell(3, i).getContents());

                Object[] cells = {cell0, cell1, cell2, cell3,};
                DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
                model.addRow(cells);
            }
        } catch (Exception e) {
        }

    } else {

    }

}                                    

最佳答案

如果您使用poi,那就更容易了。

将 poi 依赖项添加到您的 pom

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.10-FINAL</version>
</dependency>

并像这样使用它:

...
...
int rowNum = 0;
int colNum = 0;
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("sheetname");
Row row = sheet.createRow(rowNum++);
row.createCell(colNum++).setCellValue("your value");
...
...
FileOutputStream fileOut = new FileOutputStream("your excel (xlsx) file name");
workbook.write(fileOut);
fileOut.close;

阅读是类似的。检查 poi 文档。

关于java - 如何编写Excel文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25843178/

相关文章:

java - http url : 401 Unauthorized 的 HTTP 失败响应

java - 动态添加图像到 JTable 单元格

excel - 女士 EXCEL : Copy contents of Clicked/Active Cell to another Cell

string - 在 Excel If 语句中返回数字和文本字符串

excel - Power BI - 采用多列年份和值列并合并为 2 列

java - 仅允许对特定方法进行注释

java - Android BLE 无法正确连接到设备

mysql - Perl 从 xls 读取插入到 mysql

excel - 在没有加载项的情况下加载 Excel

java - 如何将来自多个接口(interface)和父类的对象存储在一个数组中