Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何编写excel文件_Java_Excel - Fatal编程技术网

Java 如何编写excel文件

Java 如何编写excel文件,java,excel,Java,Excel,嗨,我想创建一个excel文件,我需要从java应用程序中添加数据,并需要使用java应用程序再次查看这些数据。我使用java jxl库文件来完成这项工作。 我可以打开用MS excel创建的excel文件,但打开时没有任何问题。但我无法打开由java应用程序创建的excel文件。因为我认为原因是我的应用程序没有创建excel文件。它只是创建扩展名为“.xls”的文件。我无论如何都可以在excel中打开文件 当我打开应用程序创建的文件时,使用ms 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 {

    }

}                                    
JFileChooser choose=newjfilechooser();
选择.setFileSelectionMode(仅限JFileChooser.FILES_);
FileNameExtensionFilter fileF=新的FileNameExtensionFilter(“Excel文件”、“xls”);
选择.setFileFilter(fileF);
int res=choose.showOpenDialog(jFileChooser1);
if(res==JFileChooser.APPROVE\u选项){
//File File=choose.getSelectedFile();//getFile
String filePath=choose.getSelectedFile().getAbsolutePath();//getFilePath
文件f=新文件(文件路径);
//System.out.println(文件路径);
工作手册w;
试一试{
w=Workbook.getWorkbook(f);
图纸=w.getSheet(0);
对于(int i=1;i
如果使用
poi
则更容易

将poi依赖项添加到您的
pom

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

阅读也是如此。检查
poi
文档。

如果使用
poi
则更容易

将poi依赖项添加到您的
pom

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

阅读也是如此。检查
poi
文档。

如果使用
poi
则更容易

将poi依赖项添加到您的
pom

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

阅读也是如此。检查
poi
文档。

如果使用
poi
则更容易

将poi依赖项添加到您的
pom

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

阅读也是如此。查看
poi
文档。

Apache poi对我来说是这样工作的:

HSSFWorkbook workbook = new HSSFWorkbook();
Iterator<E> iterator = elementList.iterator();
for (int wsNum = 0; wsNum <= (totalNumberOfElements / 65536); wsNum++) {
  HSSFSheet worksheet = workbook.createSheet("Name of worksheet " + wsNum);
  for (long i = wsNum * 65536; i < ((wsNum + 1) * 65536); i++) {
    int ii = ((Long) (i % 65536)).intValue();
    if (!iterator.hasNext()) {
      break;
    }
    HSSFRow row = worksheet.createRow(ii);
    E e = iterator.next(); 
    for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
    {
      HSSFCell cell = row.createCell(columnNum);
      cell.setCellValue(e.getProperty(columnNum)); //figure out something smart for this one
    }
  }
}
for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
    worksheet.autoSizeColumn(columnNum);
}
return workbook;

需要注意的重要一点是,如果您希望将大量数据导出到Excel文件中,由于原始XLS格式的限制,一个工作表中总共只能有65536行。

Apache POI对我来说是这样工作的:

HSSFWorkbook workbook = new HSSFWorkbook();
Iterator<E> iterator = elementList.iterator();
for (int wsNum = 0; wsNum <= (totalNumberOfElements / 65536); wsNum++) {
  HSSFSheet worksheet = workbook.createSheet("Name of worksheet " + wsNum);
  for (long i = wsNum * 65536; i < ((wsNum + 1) * 65536); i++) {
    int ii = ((Long) (i % 65536)).intValue();
    if (!iterator.hasNext()) {
      break;
    }
    HSSFRow row = worksheet.createRow(ii);
    E e = iterator.next(); 
    for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
    {
      HSSFCell cell = row.createCell(columnNum);
      cell.setCellValue(e.getProperty(columnNum)); //figure out something smart for this one
    }
  }
}
for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
    worksheet.autoSizeColumn(columnNum);
}
return workbook;

需要注意的重要一点是,如果您希望将大量数据导出到Excel文件中,由于原始XLS格式的限制,一个工作表中总共只能有65536行。

Apache POI对我来说是这样工作的:

HSSFWorkbook workbook = new HSSFWorkbook();
Iterator<E> iterator = elementList.iterator();
for (int wsNum = 0; wsNum <= (totalNumberOfElements / 65536); wsNum++) {
  HSSFSheet worksheet = workbook.createSheet("Name of worksheet " + wsNum);
  for (long i = wsNum * 65536; i < ((wsNum + 1) * 65536); i++) {
    int ii = ((Long) (i % 65536)).intValue();
    if (!iterator.hasNext()) {
      break;
    }
    HSSFRow row = worksheet.createRow(ii);
    E e = iterator.next(); 
    for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
    {
      HSSFCell cell = row.createCell(columnNum);
      cell.setCellValue(e.getProperty(columnNum)); //figure out something smart for this one
    }
  }
}
for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
    worksheet.autoSizeColumn(columnNum);
}
return workbook;

需要注意的重要一点是,如果您希望将大量数据导出到Excel文件中,由于原始XLS格式的限制,一个工作表中总共只能有65536行。

Apache POI对我来说是这样工作的:

HSSFWorkbook workbook = new HSSFWorkbook();
Iterator<E> iterator = elementList.iterator();
for (int wsNum = 0; wsNum <= (totalNumberOfElements / 65536); wsNum++) {
  HSSFSheet worksheet = workbook.createSheet("Name of worksheet " + wsNum);
  for (long i = wsNum * 65536; i < ((wsNum + 1) * 65536); i++) {
    int ii = ((Long) (i % 65536)).intValue();
    if (!iterator.hasNext()) {
      break;
    }
    HSSFRow row = worksheet.createRow(ii);
    E e = iterator.next(); 
    for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
    {
      HSSFCell cell = row.createCell(columnNum);
      cell.setCellValue(e.getProperty(columnNum)); //figure out something smart for this one
    }
  }
}
for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
    worksheet.autoSizeColumn(columnNum);
}
return workbook;
需要注意的重要一点是,如果希望将大量数据导出到Excel文件中,由于原始XLS格式的限制,一个工作表中总共只能有65536行