呵呵,楼主既然思路都有了还怕写不出代码么?
你这个思路没有问题的!
可以把这个问题拆分成几个小问题,就简单多了。
第一是文件上传,可以参照Jakarta的FileUpload组件,其实也不一定要用这个,用普通的Post也就行了。
第二是Excel解析,用JSL或者POI都行
第三是数据保存,这个应该简单吧,一个循环,一行对应一条数据,写好了方法循环赋值调用就行了。
第四是查询和显示,这个更简单了,不用多说。
文件上传和Excel解析的例子网上很多的,改改就变自己的了,何必在这管别人要代码呢~
1、添加POI jar包到项目的lib目录下-
2、Excel文件目录:d://excelxls-
3、数据库字段为:num1 num2 num3 num4 num5 num6-
4、数据库名:blog-
5、表名:test-
6、编写类:连接mysql的字符串方法、插入的方法、实体类--
import javaioFileInputStream;-
import javaioFileNotFoundException;-
import javaioIOException;-
import orgapachecommonsloggingLog;-
import orgapachecommonsloggingLogFactory;-
import orgapachepoihssfusermodelHSSFCell;-
import orgapachepoihssfusermodelHSSFRow;-
import orgapachepoihssfusermodelHSSFSheet;-
import orgapachepoihssfusermodelHSSFWorkbook;-
public class TestExcel {-
//记录类的输出信息-
static Log log = LogFactorygetLog(TestExcelclass); -
//获取Excel文档的路径-
public static String filePath = "D://excelxls";-
public static void main(String[] args) {-
try {-
// 创建对Excel工作簿文件的引用-
HSSFWorkbook wookbook = new HSSFWorkbook(new FileInputStream(filePath));-
// 在Excel文档中,第一张工作表的缺省索引是0,-
// 其语句为:HSSFSheet sheet = workbookgetSheetAt(0);-
HSSFSheet sheet = wookbookgetSheet("Sheet1");-
//获取到Excel文件中的所有行数-
int rows = sheetgetPhysicalNumberOfRows();-
//遍历行-
for (int i = 0; i < rows; i++) {-
// 读取左上端单元格-
HSSFRow row = sheetgetRow(i);-
// 行不为空-
if (row != null) {-
//获取到Excel文件中的所有的列-
int cells = rowgetPhysicalNumberOfCells();-
String value = ""; -
//遍历列-
for (int j = 0; j < cells; j++) {-
//获取到列的值-
HSSFCell cell = rowgetCell(j);-
if (cell != null) {-
switch (cellgetCellType()) {-
case HSSFCellCELL_TYPE_FORMULA:-
break;-
case HSSFCellCELL_TYPE_NUMERIC:-
value += cellgetNumericCellValue() + ","; -
break; -
case HSSFCellCELL_TYPE_STRING:-
value += cellgetStringCellValue() + ",";-
break;-
default:-
value += "0";-
break;-
}-
} -
}-
// 将数据插入到mysql数据库中-
String[] val = valuesplit(",");-
TestEntity entity = new TestEntity();-
entitysetNum1(val[0]);-
entitysetNum2(val[1]);-
entitysetNum3(val[2]);-
entitysetNum4(val[3]);-
entitysetNum5(val[4]);-
entitysetNum6(val[5]);-
TestMethod method = new TestMethod();-
methodAdd(entity);-
}-
}-
} catch (FileNotFoundException e) {-
eprintStackTrace();-
} catch (IOException e) {-
eprintStackTrace();-
}-
}-
}-
错了,你是要批量导入吗?
需要下载poi包
首先要先把文件转变成数据流InputStream,然后
try
{
HSSFWorkbook workbook = new HSSFWorkbook(is);
HSSFSheet sheet=workbookgetSheetAt(0);
}
catch(Exception e)
{
eprintStackTrace();
}
if(sheet==null)
{
close(streamIn);
return null;
}
int rows = sheetgetPhysicalNumberOfRows();
if(rows<=1)
{
close(streamIn);
return null;
}
HSSFRow row =null;
DecimalFormat formatter=new DecimalFormat("#");
for(int r = 1;r< rows;r++)
{
}
遍历取出,并保存
需要对Excel中的数据进行读取 *** 作。
一、在开始进行Java读写Excel前,需要先下一个jxl的jar包,这个jar包中提供了相关读写Excel的方法,将jxljar放到classpath下或者在工程的buildpath中添加jxljar后,便可以开始Java读写Excel了。
二、Java读取Excel数据,首先,创建一个xls文件(如:jxltestxls),然后在文件中添加一些数据,Excel文件创建完成后,便可以开始写代码读取了。
三、进行一个小小的扩展,读取一个目录下的所有Excel文件,读取的每个Excel文件的数据写入到不同的txt中。
四、生成EXCEL需要手动写查询语句把ORACLE数据库中的数据查询出来,再通过 *** 作写到EXCEL文件里面。通过EXCEL把数据读取到ORACLE,同样需要去读取EXCEL工作薄里面的内容,再通过INSERT语句去插入数据库 *** 作。
用到的类 是 :
import orgapachepoihssfusermodelHSSFRow;
import orgapachepoihssfusermodelHSSFSheet;
import orgapachepoihssfusermodelHSSFWorkbook;
try {
// List<String[]> 中的元素 行数组String[]为excel中的每一行
List<String[]> list = new ArrayList<String[]>();
InputStream is = new FileInputStream("testxls");
HSSFWorkbook hwk = new HSSFWorkbook(is);// 将is流实例到 一个excel流里
HSSFSheet sh = hwkgetSheetAt(0);// 得到book第一个工作薄sheet
int rows = shgetLastRowNum()+1 - shgetFirstRowNum(); // 总行数
for(int i=0; i<rows; i++){
HSSFRow row = shgetRow(i);
int cols = rowgetLastCellNum()+1 - rowgetFirstCellNum(); // 该行的总列数
String[] str = new String[cols]; // 用来存放该行每一列的值
for (int j = 0; j < cols; j++) {
Object col = rowgetCell((short)j);
str[j] = coltoString();
}
}
循环变量 i 和 j 可以自己设定从第几行开始读,第几列开始读,下标从0开始。
然后你想做什么判断想做什么数据匹配都可以自己加了。
poihssfusermodel jar包要是网上找不到,就给我发邮件,我邮给你:273686381@qqcom
以上就是关于怎样将Excel文件导入数据库(在JSP环境下Java代码)全部的内容,包括:怎样将Excel文件导入数据库(在JSP环境下Java代码)、java如何把excel内容导入到mysql数据库,数据库的列名就是excel的列名、把EXCEL文件导入到MYSQL数据库的java类代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)