首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

怎么将EXCEL数据导入access数据库中的表中去

2012-02-12 
如何将EXCEL数据导入access数据库中的表中去我的ACCESS数据库中有一个table1的表,表结构:idnamepas我的exc

如何将EXCEL数据导入access数据库中的表中去
我的ACCESS数据库中有一个table1的表,表结构:id   name   pas
我的excel中的数据也是分为跟表table1相同的结构
我想用jsp把excel中的数据批量导入到access数据库的table1表中
请问该如何去做,谢谢

[解决办法]
/**
* 根据formatExcel文件中的格式读取dataExcel中的数据
*
* @param formatExcel excel模板的指针
* @param dataExcel excle格式存放的数据
* @return
*/
public Map readImportdata(HSSFWorkbook formatExcel, HSSFWorkbook dataExcel) {
int sheetNumber = 0;
int rowNumber = 0;
int cellNumber = 0;
int allSheet = 0;
boolean needSkipFirstRow = true;
List resultList = new ArrayList();

/**
* resultMap 内含有如下内容:
* flag String true:正常执行,可以取结果集 false:程序执行流程错误,但没有异常
* msg String 如果程序出错,此内容保存的是出错信息。
* resultList List 如果程序正常执行,这里保存的是结果集
*/
Map resultMap = new HashMap();
String flag = "true ";
StringBuffer msg = new StringBuffer( " ");
resultMap.put( "flag ", flag);
resultMap.put( "msg ", msg.toString());
if (formatExcel == null) return resultMap;
if (dataExcel == null) return resultMap;

initialize();
getImportColumns(formatExcel);
allSheet = dataExcel.getNumberOfSheets();

for (sheetNumber = 0; sheetNumber < allSheet; sheetNumber++) {//读取所有的sheet页
HSSFSheet dataSheet = dataExcel.getSheetAt(sheetNumber);
int allrows = dataSheet.getLastRowNum();


Iterator rowIt = dataSheet.rowIterator();

//如果没有内容,返回,判断是否需要跳过第一行
if (rowIt.hasNext()) {
if (needSkipFirstRow) {
rowIt.next();
rowNumber++;
}
}

//循环读数据
while (rowIt.hasNext()) {
HSSFRow dataRow = (HSSFRow) rowIt.next();
// HSSFRow dataRow = (HSSFRow)dataSheet.getRow(currentrow);
int allcells = dataRow.getLastCellNum();
short currentCol = 0;
// Iterator cellIt = dataRow.cellIterator();
int columnsize = importColumns.size();
cellNumber = 0;
Map oneRow = new HashMap();
for (currentCol = 0; currentCol < allcells; currentCol++) {


// while(cellIt.hasNext() && currentCol <columnsize){


// HSSFCell dataCell = (HSSFCell)cellIt.next();
HSSFCell dataCell = dataRow.getCell(currentCol);
// currentCol = dataCell.getCellNum();
cellNumber = currentCol;
Object colType = importColumns.get(currentCol);
if (colType instanceof Map) {
//进行字段的校验和转换
Map tempcolType = (Map) colType;
String cellContent = getStringFromCell(dataCell);

String allownull = (String) tempcolType.get( "allownull ");
String dbname = (String) tempcolType.get( "dbname ");
String format = (String) tempcolType.get( "format ");
Integer maxlength = (Integer) tempcolType.get( "maxlength ");
String dictionary = (String) tempcolType.get( "dictionary ");
System.out.println(dbname + " = " + cellContent);
if (dbname == null) dbname = " ";
//进行非空检验
if (allownull == null) allownull = "true ";
if (allownull.equals( "false ")) {
if (cellContent == null || cellContent.trim().equals( " ")) {
flag = "false ";

[解决办法]
向楼上的同志学习!!!
[解决办法]
先上传excle文件,然后用jxl或poi解析,然后insert到数据库
http://blog.csdn.net/lcllcl987/archive/2005/01/12/250129.aspx

热点排行