0

以下のプログラムは、1 つのテーブルのデータを Excel ファイルにエクスポートします。私の質問は、2 つのテーブルがある場合、そのデータを同じ Excel ファイルの 2 つの異なるワークシートにエクスポートする方法です。

同じ Excel シートのワークシート 1 のタブ 1 データとワークシート 2 のタブ 2 データを想定します。

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);

    }
        }
    }
4

1 に答える 1

1

質問が正しいかどうかはわかりません。また、私は Java プログラマーでもありませんが、論理的に思われる私の理論は次のとおりです。

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

提供された Java API を介して新しいワークブック/シート オブジェクトを定義します (「新しいシート」はシートの名前です)。2 番目のシートを定義する場合は、次のことが簡単にできるはずです。

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

新しいシート オブジェクトを作成して定義します。
次に、次の場合:

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

明らかに、作成した 2 番目のシート オブジェクトSheet_2を使用する必要があります。同じことが、コードの残りの部分とテーブルを作成するときにも当てはまります。ファイルに書き込むときは、期待どおりの結果が得られるはずだと確信しています。

于 2012-07-20T13:38:11.087 に答える