多表数据导出到java中同一excel工作表的多个工作表
下面的程序导出excel文件中单个表的数据。我的问题是,如果我有两个表,那么如何将其数据导出到同一excel文件的两个不同工作表中 假设同一excel工作表的工作表1中的tab1数据和工作表2中的tab2数据多表数据导出到java中同一excel工作表的多个工作表,java,excel,apache-poi,Java,Excel,Apache Poi,下面的程序导出excel文件中单个表的数据。我的问题是,如果我有两个表,那么如何将其数据导出到同一excel文件的两个不同工作表中 假设同一excel工作表的工作表1中的tab1数据和工作表2中的tab2数据 public class CreateExcelFile{ public static void main(String[]args){ try{ String filename="c:/data.xls" ; HSSFWorkbook hwb=ne
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定义新工作簿/工作表对象(工作表的名称为“new sheet”)。
如果要定义第二张图纸,则只需能够:
HSSFSheet sheet_2 = hwb.createSheet("new_sheet_2");
创建并定义新的图纸对象。然后当你:
HSSFRow rowhead= sheet.createRow((short)0);
显然,您需要使用您创建的第二个图纸对象,sheet_2。
这同样适用于代码的其余部分以及构建表时。
在写入文件时,我非常肯定您会得到预期的结果 我是一名经验丰富的POI和Java程序员,假设我们理解您的问题,Kim完全正确。可以使用createSheet在POI中轻松创建多个图纸。你甚至不必给他们起名字;您可以使用不带参数的createSheet版本。因此,您可以将每个mysql表导出到不同的工作表。