jxl.jar (jexcelapi),輕量無 POI 依賴。ResultSet (資料庫直匯) / `Listpublic class ExcelUtil {
// JDBC 模式
public static void exportToExcel(String filePath, ResultSet rs,
String[] fieldNames, boolean[] isDisplay, int[] columnWidth)
// Record 模式
public static void exportToExcel(String filePath, List<Record> records,
String[] fieldNames, boolean[] isDisplay, int[] columnWidth)
}
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "pwd");
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM user");
String[] fields = {"序號","姓名","年齡","電話","地址","出生日期"};
boolean[] show = {false, true, false, true, false, true};
int[] widths = {20, 40, 20, 20, 40, 40};
ExcelUtil.exportToExcel("f:/export_user.xls", rs, fields, show, widths);
rs.close(); st.close(); conn.close();
List<Record> list = new ArrayList<>();
list.add(new Record(0, new String[]{"1","張三","22","123","測試地址1"}));
list.add(new Record(1, new String[]{"2","李四","33","456","測試地址2"}));
String[] fields = {"序號","姓名","年齡","電話","地址"};
boolean[] show = {false, true, false, true, false};
int[] widths = {20, 40, 20, 20, 40};
ExcelUtil.exportToExcel("f:/export_mem.xls", list, fields, show, widths);
public class Record {
private int rowIndex;
private String[] values;
public Record(int rowIndex, String[] values) { this.rowIndex = rowIndex; this.values = values; }
// getter/setter 略
}
JXL 僅支援 `.xls` (BIFF8),**不支援 `.xlsx` (OOXML)** 且不再更新。新專案強烈建議改用 Apache POI (支援 xls/xlsx、流式寫入 SXSSF、豐富樣式)。本工具僅供維護舊系統參考。