你好! 请教你个问题 java web程序如何将读取的excel表格里的数据插入到数据库,并显示在JSP页面上?
代码就嘞。。太多。。。而且这东西痛过一次就。。。
给你个思路。。。首先分解问题
1.java后台要读取excel,就需要用到 上传功能 怎么传搜度娘
2.java读取excel 我用的是jxl这个jar 怎么用搜度娘
3.插入数据库 insert就好 考虑性能和效率 建议用批量
4.显示在jsp select就好
关键的代码 网上都有 复制改就好 但是规则一定要自己想好
如何把从数据库读出来的数据以excel格式显示到网页
你用的是ORACLE数据库
1.打开PL/SQL dev
2.File——New——Report Window,在中入你的SELECT语句,得到你表或视图
3.在点击"Save as excel"或者"Save as HTML"就可以了!非常方便
希望能帮到你!
C#语言在网页上将excel中的内容导入到SQL数据库表中
我给你一段代码吧:其站里很多的代码:
public DataSet ExecleDs(string filenameurl, string table)
{
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" "data source=" filenameurl ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
DataSet ds = new DataSet();
OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);
odda.Fill(ds, table);
return ds;
}
protected void Button8_Click(object sender, EventArgs e)//确定添加键
{
string strConn = "Data Source=.;DataBase=gongnuan;Uid=sa;Pwd=sa";
if (FileUpload1.HasFile == false)//HasFile用查FileUpload是否有指定
{
Response.Write("alert('请您选择Excel文件') ");
return;//当无文件时,返回
}
string IsXls = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();//System.IO.Path.GetExtension获得文件的扩展名
if (IsXls != ".xls")
{
Response.Write("alert('只可以选择Excel文件')");
return;//当选择的不是Excel文件时,返回
}
SqlConnection cn = new SqlConnection(strConn);
cn.Open();
string filename = FileUpload1.FileName; //获取Execle文件名 DateTime日期函数
string savePath = Server.MapPath(("~\\upfiles\\") filename);//Server.MapPath 获得虚拟服务器相对路径
FileUpload1.SaveAs(savePath); //SaveAs 将上传的文件内容保存在服务器上
DataSet ds = ExecleDs(savePath, filename); //调用自定义方法
DataRow[] dr = ds.Tables[0].Select(); //定义一个DataRow数组
int rowsnum = ds.Tables[0].Rows.Count;
if (rowsnum == 0)
{
Response.Write("alert('Excel表为空表,无数据!')"); //当Excel表为空时,对用户进行提示
}
else
{
for (int i = 0; i < dr.Length; i )
{
string pininputdate = dr[i]["excel列名"].ToString();//日期 excel列名【名称不能变,否则就会出错】
string insertstr = "insert语句";
SqlCommand cmd = new SqlCommand(insertstr, cn);
try
{
cmd.ExecuteNonQuery();
}
catch (MembershipCreateUserException ex) //捕捉异常
{
Response.Write("alert('导入内容:" ex.Message "')");
}
}
Response.Write("alert('Excle表导入成功!');location='default.aspx'");
}
cn.Close();
}
你可以好好研究下
你好! 请教你个问题 java web程序如何将读取的excel表格里的数据插入到数据库,并显示在JSP页面上?
主要用poi.jar 包。包含两个jar就可以了:poi-3.16.jar、poi-ooxml-3.16.jar
主要方法分三步:
/**
* filePath 路径
* unCaseRow 要排除的行数(从下)
* unCaseLine 要排除的列数(从左往右)
*/
public List readExcel(String filePath, int unCaseRow, int unCaseLine) throws Exception {
Sheet sheet = null;
FileInputStream inStream = null;
try {
inStream = new FileInputStream(new File(filePath));
Workbook workBook = WorkbookFactory.create(inStream);
sheet = workBook.getSheetAt(0);
} catch (Exception e) {
e.printStackTrace();
throw new Exception();
} finally {
try {
if (inStream != null) {
inStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
List list = init(sheet, unCaseRow, unCaseLine);// 需要排除行数
return list;
}
// 初始化表格中的每一行,并得到每一个单元格的值
private List init(Sheet sheet, int unCaseRow, int unCaseLine) {
int rowNum = sheet.getLastRowNum() 1; // 从零开始
List result = new ArrayList();
String[] rowArr = null;
Row row = null;
Cell cell = null;
int rowLength = 0;
int rowIndex = 0;
String rowStr = null;
for (int i = unCaseRow; i
row = sheet.getRow(i);
// 每有新的一行,创建一个新的LinkedList对象
rowLength = row.getLastCellNum();
rowIndex = 0;
rowArr = new String[LINECOUNT];
for (int j = unCaseLine; j
cell = row.getCell(j);
// 获取单元格的值
rowStr = getCellValue(cell);
// 将得到的值放入链表中
rowArr[rowIndex ] = rowStr;
}
result.add(rowArr);
}
return result;
}
// 获取单元格的值
@SuppressWarnings("deprecation")
private String getCellValue(Cell cell) {
String cellValue = "";
DataFormatter formatter = new DataFormatter();
if (cell != null) {
// 判断单元格数据的类型,不同类型调用不同的方法
switch (cell.getCellType()) {
// 数值类型
case Cell.CELL_TYPE_NUMERIC:
// 进一步判断 ,单元格格式是日期格式
if (DateUtil.isCellDateFormatted(cell)) {
cellValue = formatter.formatCellValue(cell);
} else {
// 数值
double value = cell.getNumericCellValue();
int intValue = (int) value;
cellValue = value - intValue == 0 ? String.valueOf(intValue) : String.valueOf(value);
}
break;
case Cell.CELL_TYPE_STRING:
cellValue = cell.getStringCellValue();
break;
case Cell.CELL_TYPE_BOOLEAN:
cellValue = String.valueOf(cell.getBooleanCellValue());
break;
// 判断单元格是公式格式,需要做一种特殊处理来得到相应的值
case Cell.CELL_TYPE_FORMULA: {
try {
cellValue = String.valueOf(cell.getNumericCellValue());
} catch (IllegalStateException e) {
cellValue = String.valueOf(cell.getRichStringCellValue());
}
}
break;
case Cell.CELL_TYPE_BLANK:
cellValue = "";
break;
case Cell.CELL_TYPE_ERROR:
cellValue = "";
break;
default:
cellValue = cell.toString().trim();
break;
}
}
return cellValue.trim();
}
解析成对象以后,不论是插入数据库,还是jsp,都是一样的。
插入数据库:hibernate、mybatis
在jsp显示:对象封装进list,在页面显示list。
在网页上用Excel报表操作数据库
我的建议是
不要这样在表页建立excel,感觉不是很现实
建议使用infopath(同样是office组件)做xml
背后连上access或者excel
这个方案更适合网上表单填写采集