📄 dataimport.java
字号:
package DataImportExport;
////--引入包--//////////////////////
import DataBase.Operator.*; //向数据库插入数据;修改数据库的数据;删除数据库的数据
import java.sql.*; //生成ResultSet对象
import java.util.*;
import jxl.*; // JExcel API 操作 MicroSoft Excel文件
import jxl.read.biff.*;
import jxl.write.*;
import java.io.*; //生成 File对象
////////////////////////////////////////////////////////////////////
/// ///
/// 描述:数据导入类DataImport ///
/// 功能:把Excel表中的数据导入数据库中 ///
/// 作者:欧阳湘江、袁虎声 ///
/// 时间:2004年11月 ///
/// ///
////////////////////////////////////////////////////////////////////
public class DataImport extends TableInfo
{
int selectIndex[]; //
int selectColumnNum=0;
int rsRows=0; //Sheet表中所包含的总行数
int rsCols=0; //Sheet表中所包含的总列数
int insertRows=0; //插入影响行数
int updateRows=0; //修改影响行数
int deleteRows=0; //删除影响行数
String[] excelColumnName; //
jxl.Workbook readWorkbook; //Excel工作簿对象
Sheet sheetResult; //Excel表对象
String oprationType=""; //更新操作类型
String timeCond=""; //时间条件
String time=""; //时间
String timeName=""; //时间字段名
String department="";
String[] additionalColumnName=null;
String[] additionalColumnNameType=null;
int additionalColumnNameNumber=0;
String fileName=""; //源文件名
int firstLine=0; //Excel表数据起始行
String condHead=null;//SQL执行语句的前部分
String cond=null;//SQL执行语句
String deleteCond=""; //删除记录条件
String additionalCondHead="";
String additionalCond="";
public DataImport()
{
super();
}
public void destroyDataImport()
{
tableName="";
tableChineseName="";
columnName=null;
columnChineseName=null;
columnCount=0;
columnType=null;
columnLength=null;
permitNull=null;
primaryKeys=null;
primaryKeyNumber=0;
primaryKeyIndex=null;
foreignKeys=null;
foreignKeyNumber=0;
feedbackMessage="";
selectIndex=null;
selectColumnNum=0;
rsRows=0;
rsCols=0;
insertRows=0;
updateRows=0;
deleteRows=0;
excelColumnName=null;
readWorkbook=null;
sheetResult=null;
oprationType="";
timeCond="";
time="";
timeName="";
fileName="";
firstLine=0;
condHead=null;
cond=null;
deleteCond="";
}
////////////////////////获取Sheet表中所包含的总行数////////////
public int getRsRows()
{
return rsRows;
}
////////////////////////获取插入总行数////////////
public int getInsertRows()
{
return insertRows;
}
////////////////////////获取修改总行数////////////
public int getUpdateRows()
{
return updateRows;
}
////////////////////////获取删除总行数////////////
public int getDeleteRows()
{
return deleteRows;
}
////////////////////////获取Sheet表中所包含的总列数数组//////////////////////
public int getRsCols()
{
return rsCols;
}
////////////////////////获取Sheet表中所包含的列名数组//////////////////////
public String[] getExcelColumnName()
{
return excelColumnName;
}
/////////////////////////取设时间条件//////////////////////
public void setTimeCond(String tc)
{
timeCond=tc;
}
public String getTimeCond()
{
return timeCond;
}
//////////////////////////取设时间//////////////////////
public void setTime(String t)
{
time=t;
}
public String getTime()
{
return time;
}
////////////////////////取设时间字段名//////////////////////
public void setTimeName(String tn)
{
timeName=tn;
}
public String getTimeName()
{
return timeName;
}
////////////////////////取设时间字段名//////////////////////
public void setDepartment(String dp)
{
department=dp;
}
public String getDepartment()
{
return department;
}
/////////////////////////////////////////////
public void setAdditionalColumnNameType(String[] acnt)
{
additionalColumnNameType=acnt;
}
public String[] getAdditionalColumnNameType()
{
return additionalColumnNameType;
}
public void setAdditionalColumnName(String[] acn)
{
additionalColumnName=acn;
}
public String[] getAdditionalColumnName()
{
return additionalColumnName;
}
public void setAdditionalColumnNameNumber(int acnn)
{
additionalColumnNameNumber=acnn;
}
public int getAdditionalColumnNameNumber()
{
return additionalColumnNameNumber;
}
//////////////////////取设更新操作类型//////////////////////////////
public void setOprationType(String optype)
{
oprationType=optype;
}
public String getOprationType()
{
return oprationType;
}
////////////////////// 取SQL执行语句cond //////////////////////////////
public String getCond()
{
return cond;
}
////////////////////// 取SQL执行语句头部condHead //////////////////////////////
public String getCondHead()
{
return condHead;
}
////////////////////// 取设删除条件 //////////////////////////////
public void setDeleteCond(String delCon)
{
deleteCond=delCon;
}
public String getDeleteCond()
{
return deleteCond;
}
/////////////////////////////////////////////////////////////////
public void setAdditionalCond(String adc)
{
additionalCond=adc;
}
public String getAdditionalCond()
{
return additionalCond;
}
public void setAdditionalCondHead(String adch)
{
additionalCondHead=adch;
}
public String getAdditionalCondHead()
{
return additionalCondHead;
}
////////////////////////////////////////////////////////////////////
/// ///
/// 查询EXCEL表字段名 ///
/// ///
////////////////////////////////////////////////////////////////////
public boolean queryExcelColName(String fn,String firstCh)
{
//读取数据Excel文件中的数据
//构建Workbook对象, 只读Workbook对象
//直接从本地文件创建Workbook
//从输入流创建Workbook
fileName=fn;
try {
readWorkbook = jxl.Workbook.getWorkbook(new java.io.File(fileName));
sheetResult = readWorkbook.getSheet(0);
//获取第一张Sheet表
rsRows = sheetResult.getRows();
rsCols = sheetResult.getColumns();
excelColumnName=new String[rsCols];
if(firstCh.equals("1"))
{
Cell cc;
for (int i = 0; i < rsCols; i++)
{
cc=sheetResult.getCell(i,0);
excelColumnName[i]=cc.getContents();
}
firstLine=1;
}
else
{
for (int i = 0; i < rsCols; i++)
{
String colCh="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
excelColumnName[i]=colCh.substring(i,i+1);
}
firstLine=0;
}
feedbackMessage="查询成功";
return true;
}
catch (BiffException ex)
{
feedbackMessage="读Biff文件失败!请检查你的源文件后重试。";
return false;
}
catch (IOException ex)
{
feedbackMessage="读IO文件失败!请检查你的源文件后重试。";
return false;
}
}
////////////////////////////////////////////////////////////////////
/// ///
/// 从EXCEL文件中导入数据到数据库 ///
/// ///
////////////////////////////////////////////////////////////////////
public boolean excelImport(int sltIndex[],int scn)
{
selectIndex=sltIndex; //获取Sheet表列与目标表列对应下标数组
selectColumnNum=scn;
//更新(先删除,再插入)
if(oprationType.equals("deleteUpdate"))
{
feedbackMessage ="删除操作开始";
return deleteThenUpdate();
}
//更新(存在则修改,不存在则插入)
else if(oprationType.equals("updateInsert"))
{
return updateThenInsert();
}
else
{
feedbackMessage ="非法连接";
return false;
}
}
////////////////////////////////////////////////////////////////////
/// ///
/// 更新(先删除,再插入) ///
/// ///
////////////////////////////////////////////////////////////////////
public boolean deleteThenUpdate()
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -