用java设计一个程序,通过程序将下表中数据存储到记录中

表格:学号姓名数学成绩英语成绩计算机成绩至少有5条记录,将记录排序显示。... 表格:学号 姓名 数学成绩 英语成绩 计算机成绩

至少有5条记录,将记录排序显示。
展开
 我来答
百度网友d8d87c21b
2008-12-16 · TA获得超过156个赞
知道答主
回答量:59
采纳率:0%
帮助的人:53.6万
展开全部
你的问题本身就有太多疑问,想帮都帮不上。
1.什么表?是EXCEL的表吗?如果是,等下告诉你如何POI插件实现.
2.存储到什么记录?数据库?什么数据库?SQL SERVER?如果是,同样等下告诉你方法;
3.是纯JAVA实现还是可以JSP实现?因为用JSP实现也挺简单的。

这样吧,我就在一知半解的情况下给出解决办法吧:
1.首先,这个是JSP实现的通过上传EXCEL表然后存储到SQL SERVER中的代码:
(PS:首先要用JXL包)
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page import="java.io.*,jxl.*,jxl.write.*,jxl.write.*,jxl.format.*"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<%@ page import="java.awt.*"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="com.jspsmart.SmartFile"%>
<jsp:useBean id="common" class="com.teach.db.commonMethod" scope="page">
</jsp:useBean>
<%//实现EXCEL文件上传,上传之后把EXCEL文件中的内容导入SQL server数据库中

//用smartUpload组件把EXCEL文件上传
com.jspsmart.SmartUpload smartUpload = new com.jspsmart.SmartUpload(); //初始化smartUPload
smartUpload.initialize(pageContext);
smartUpload.service(request, response);
smartUpload.upload();
com.jspsmart.SmartFile file = smartUpload.getFiles().getFile(0); //得到上页输入的文件
//取中文表单参数
String newFileName = "test.xls";
//改名上传
file.saveAs("excel/" + newFileName, smartUpload.SAVE_VIRTUAL);

%>
<%!public String codeToString(String str) {//处理中文字符串的函数
String s = str;
try {
byte tempB[] = s.getBytes("ISO-8859-1");
s = new String(tempB);
return s;
} catch (Exception e) {
return s;
}
}

%>
<html>
<head>
<title></title>
</head>
<body>
<%//得到前页传过来的参数
String courseId=session.getAttribute("courseId").toString();
%>
<%String path = request.getRealPath("\\") + "excel" + "\\"
+ "test.xls";//Excel文件URL
InputStream is = new FileInputStream(path);//写入到FileInputStream
jxl.Workbook wb = Workbook.getWorkbook(is); //得到工作薄
jxl.Sheet st = wb.getSheet(0);//得到工作薄中的第一个工作表

int rsRows = st.getRows(); //得到excel的总行数
for (int i = 1; i < rsRows; i++) {
Cell cell0 = st.getCell(0, i);//得到工作表的第一个单元格,即A1
Cell cell1 = st.getCell(1, i);//得到工作表的第二个单元格,即A1

try {
String content0 = cell0.getContents();//getContents()将Cell中的字符转为字符串
int content1 = Integer.parseInt(cell1.getContents()); //得到条形码

//存入数据库
String sql = "insert into sy_score(courseId,scoreStudentName,score)"
+ "values("
+ courseId
+ ",'"
+ content0
+ "',"
+ content1+")";
System.out.println(sql);
common.Del_Insert(sql); //执行SQL语句
} catch (Exception e) {
//如果EXCEL文件中输入的数据有错,则跳过此行数据
session.setAttribute("message", "有错误,不能导入,请检查您的excel文件");
continue;
}

}
wb.close();//关闭工作薄
is.close();//关闭输入流
response.sendRedirect("insert_done.jsp"); //转到成功页

%>
</body>
</html>

2.如果不是要JSP的,那么来看看用纯JAVA如何实现:

(PS:要用到APACHE的POI)

用Apacher的POI读取Excel,再写入SQL Server就可以
这个是读取的例子 读取分析完后直接写入库中就行
public class ReadExcelToSql
{
private void readExcel(File file)
{
DecimalFormat df = new DecimalFormat("#");

try
{
HSSFWorkbook book=new HSSFWorkbook(new FileInputStream(file));
for(int numSheets=0;numSheets<book.getNumberOfSheets();numSheets++)
{
if(null!=book.getSheetAt(numSheets))
{
//System.out.println("Sheet存在");
HSSFSheet sheet=book.getSheetAt(numSheets);
for(int numRows=0;numRows<=sheet.getLastRowNum();numRows++)
{
if(null!=sheet.getRow(numRows))
{
//System.out.println("Row存在");
HSSFRow row=sheet.getRow(numRows);
for(short numCells=0;numCells<=row.getLastCellNum();numCells++)
{
if(null!=row.getCell(numCells))
{
HSSFCell cell=row.getCell(numCells);
int cellType=cell.getCellType();
switch(cellType)
{
case 0:
System.out.print(df.format(cell.getNumericCellValue()));
break;
case 1:
System.out.print(cell.getRichStringCellValue());
break;
default:break;
}

System.out.print("\t");
}
}
System.out.println();
}
}
}
}
}catch(Exception ex)
{
ex.printStackTrace();
}
}
}
具体表项之间的对应你自己稍微设计一下就可以了。还有不明白的可以给我留言.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
茂烟f
2008-12-16 · TA获得超过329个赞
知道小有建树答主
回答量:666
采纳率:0%
帮助的人:659万
展开全部
出钱么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式