java - java中多个表数据导出到同一个excel工作表的多个工作表

标签 java excel apache-poi

下面的程序导出Excel文件中单个表的数据。我的问题是,如果我有两个表,那么如何将其数据导出到同一Excel文件的两个不同工作表中?

假设同一Excel工作表的worksheet1中的tab1数据和worksheet2中的tab2数据

public class CreateExcelFile{
        public static void main(String[]args){
    try{
    String filename="c:/data.xls" ;
    HSSFWorkbook hwb=new HSSFWorkbook();
    HSSFSheet sheet =  hwb.createSheet("new sheet");

    HSSFRow rowhead=   sheet.createRow((short)0);
    rowhead.createCell((short) 0).setCellValue("SNo");
    rowhead.createCell((short) 1).setCellValue("Name");
    rowhead.createCell((short) 2).setCellValue("Address");
    rowhead.createCell((short) 3).setCellValue("Contact No");
    rowhead.createCell((short) 4).setCellValue("E-mail");

    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:456/test", "root", "root");
    Statement st=con.createStatement();
    ResultSet rs=st.executeQuery("Select * from employee");
    int i=1;
    while(rs.next()){
    HSSFRow row=   sheet.createRow((short)i);
    row.createCell((short) 0).setCellValue(Integer.toString(rs.getInt("id")));
    row.createCell((short) 1).setCellValue(rs.getString("name"));
    row.createCell((short) 2).setCellValue(rs.getString("address"));
    row.createCell((short) 3).setCellValue(Integer.toString(rs.getInt("contactNo")));
    row.createCell((short) 4).setCellValue(rs.getString("email"));
    i++;
    }
    FileOutputStream fileOut =  new FileOutputStream(filename);
    hwb.write(fileOut);
    fileOut.close();
    System.out.println("Your excel file has been generated!");

    } catch ( Exception ex ) {
        System.out.println(ex);

    }
        }
    }

最佳答案

不确定我的问题是否正确,而且我也不是 Java 程序员,但这是我的理论,看起来很合乎逻辑:

HSSFWorkbook hwb=new HSSFWorkbook(); 
HSSFSheet sheet =  hwb.createSheet("new sheet"); 

通过提供的 Java API 定义新的工作簿/工作表对象(“新工作表”是工作表的名称)。 如果您想定义第二个工作表,那么您应该能够:

HSSFSheet sheet_2 =  hwb.createSheet("new_sheet_2"); 

它创建并定义一个新的工作表对象。
然后当你:

HSSFRow rowhead=   sheet.createRow((short)0);

显然,您需要使用您创建的第二个工作表对象,Sheet_2。 这同样适用于代码的其余部分以及构建表时。 当写入文件时,我非常肯定您应该得到您期望的结果。

关于java - java中多个表数据导出到同一个excel工作表的多个工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11578232/

相关文章:

java - 通过分割字符串从另一个字符串数组列表创建一个字符串数组列表

vba - 获取命名范围内具有特定值的单元格的行号

.net - 在 x64 系统上的 .NET 中打开 Excel 电子表格

grails - OutOfMemoryError : Java heap space to upload 8 MB size file

java - 在 intellij-run jrebel tomcat 服务器上通过 ssh 重新加载类

java - 使用 JSON 模式在 Java 中创建和序列化数据

java - while 循环中我的代码出现空指针异常

perl - 使用 Perl 打开在 Mac Excel 中创建的 CSV 文件

java - 在导出的 csv 文件中添加新行?

java - 减少小程序中读取excel文件