繁体   English   中英

在Java中将多个表数据导出到同一Excel工作表的多个工作表

[英]Multiple tables data exported to multiple worksheets of the same excel sheet in java

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

假设同一Excel工作表的工作表1中的tab1数据和工作表2中的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 其余代码和构建表时也是如此。 写入文件时,我非常肯定您应该获得期望的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM