bean 代码如下:
不知道是不是bean的问题
package excel;
import java.sql.*;
import java.io.File;
import jxl.write.Label;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.WritableWorkbook;
import jxl.write.WritableSheet;
import dbBean.DbBean;public class ToFromExcel { public  void exportToExcel(){
try {
// 打开文件
WritableWorkbook book = Workbook.createWorkbook(new File("test.xls"));
// 生成名为“第一页”的工作表,参数0表示这是第一页
WritableSheet sheet = book.createSheet("users", 0);
DbBean db = new DbBean();
String sql = "select * from users";
ResultSet rs = db.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
for (int i = 1; i <= numberOfColumns; i++) {
String columnName = rsmd.getColumnName(i);
String columnType = rsmd.getColumnTypeName(i);
System.out.println(columnType);
Label label = new Label(i - 1, 0, columnType);
// 将定义好的单元格添加到工作表中
sheet.addCell(label);
System.out.println(columnName);
// 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
// 以及单元格内容为test
label = new Label(i - 1, 1, columnName);
// 将定义好的单元格添加到工作表中
sheet.addCell(label);
}
int rowCount = 1;
while (rs.next()) {
for (int i = 1; i <= numberOfColumns; i++) {
String value = rs.getString(i);
Label label = new Label(i - 1, rowCount, value);
// 将定义好的单元格添加到工作表中
sheet.addCell(label);
}
rowCount++; } /**//*
 * 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123
 */
/*
 * jxl.write.Number number = new jxl.write.Number( 1 , 0 , 555.12541 );
 * sheet.addCell(number);
 */
// 写入数据并关闭文件
book.write();
book.close(); } catch (Exception e) {
System.out.println(e);
}
}
public boolean[] getFieldType(Sheet sheet)
{
int count=sheet.getColumns();
boolean[] result=new boolean[count];
for(int i=0;i<count;i++) result[i]=false;
for(int i=0;i<count;i++)
{
String type=sheet.getCell(i,0).getContents();
if(type.equals("VARCHAR")) result[i]=true;
else if(type.equals("Date")) result[i]=true;
}
return result;
}
public void  insetIntoDB(Sheet sheet,boolean[] type,String databaseName)
{
String FieldName="";
String valuse="";
int count=sheet.getColumns();
for(int i=0;i<count;i++) FieldName+=sheet.getCell(i,1).getContents()+",";
if(FieldName.endsWith(",")) FieldName=FieldName.substring(0,FieldName.length()-1);
for(int row=2;row<sheet.getRows();row++)
{
valuse="";
for(int i=0;i<count;i++) {
if(type[i]) valuse+="'"+sheet.getCell(i,row).getContents()+"',";
else valuse+=sheet.getCell(i,row).getContents()+",";
}
if(valuse.endsWith(",")) valuse=valuse.substring(0,valuse.length()-1);
String sql="insert into "+ databaseName+"("+FieldName+") values("+valuse+")";
//System.out.println(sql);
DbBean db = new DbBean();
boolean result=db.excuteUpdate(sql);
if(result)
{
System.out.print("导入成功!");
}
}
}
public  void importFromExcel(String filePath)
{
try {
Workbook book = Workbook.getWorkbook(new File(filePath));
// 获得第一个工作表对象 String[] allSheet = book.getSheetNames();
for (int i = 0; i < allSheet.length; i++) {
Sheet sheet = book.getSheet(i);
insetIntoDB(sheet,getFieldType(sheet),allSheet[i]);
/*Sheet sheet = book.getSheet(i);
// 得到第一列第一行的单元格
Cell cell1 = sheet.getCell(0, 0);
String result = cell1.getContents();
System.out.println(result);*/
}
book.close();
} catch (Exception e) {
System.out.println(e);
}
}


}