package totabel.action
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import javax.swing.JOptionPane
import topdf.TableToPdf
import totabel.view.TabelData
import totabel.xls.ExcelDemo
public class TableAction implements ActionListener {
TabelData data
public TableAction(TabelData data) {
this.data = data
}
public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand()
if ("添加".equals(str)) {
data.addData()
} else if ("导出到Excel".equals(str)) {
ExcelDemo demo = new ExcelDemo()
demo.method(data)
} else if ("删除".equals(str)) {
if (data.getRow() != -1) {
data.delRow()
} else {
JOptionPane.showMessageDialog(null, "请选择要删除的行!")
}
}else if("从Excel导入".equals(str)){
data.getXlsInfo()
}else if("从Excel导入到数据库".equals(str)){
data.toDb()
}else if("从table导出到pdf".equals(str)){
TableToPdf pdf=new TableToPdf()
pdf.newPage(data)
}else if("计算学分".equals(str)){
data.getXlsInfoToCredit()
}
}
}
第二个类:数据库连接
package totabel.db
import java.sql.Connection
import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.SQLException
import java.sql.Statement
public class JdbcConnection {
private static JdbcConnection con
public static JdbcConnection getCon() {
if (con == null) {
con = new JdbcConnection()
}
return con
}
public Connection getConnection() {
Connection connection=null
try {
Class.forName("oracle.jdbc.OracleDriver")
String url = "jdbc:oracle:thin:@127.0.0.1:1521:oracle"
String user = "scott"
String password = "tiger"
connection = DriverManager.getConnection(url, user,
password)
} catch (ClassNotFoundException e) {
e.printStackTrace()
} catch (SQLException e) {
e.printStackTrace()
}
return connection
}
// public static void main(String[] args) {
// JdbcConnection connection=new JdbcConnection()
// connection.getConnection("asd", "99")
// }
}
第三个类:主类(入口)
package totabel.db
import java.sql.Connection
import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.SQLException
import java.sql.Statement
public class JdbcConnection {
private static JdbcConnection con
public static JdbcConnection getCon() {
if (con == null) {
con = new JdbcConnection()
}
return con
}
public Connection getConnection() {
Connection connection=null
try {
Class.forName("oracle.jdbc.OracleDriver")
String url = "jdbc:oracle:thin:@127.0.0.1:1521:oracle"
String user = "scott"
String password = "tiger"
connection = DriverManager.getConnection(url, user,
password)
} catch (ClassNotFoundException e) {
e.printStackTrace()
} catch (SQLException e) {
e.printStackTrace()
}
return connection
}
// public static void main(String[] args) {
// JdbcConnection connection=new JdbcConnection()
// connection.getConnection("asd", "99")
// }
}
第四个类:
package totabel.xls
import java.io.File
import java.io.IOException
import java.util.Vector
import java.util.regex.Matcher
import java.util.regex.Pattern
import javax.swing.JOptionPane
import totabel.view.TabelData
import jxl.Cell
import jxl.Sheet
import jxl.Workbook
import jxl.read.biff.BiffException
import jxl.write.Label
import jxl.write.WritableSheet
import jxl.write.WritableWorkbook
import jxl.write.WriteException
import jxl.write.biff.RowsExceededException
public class ExcelDemo {
/**
*
* @param args
*/
private Vector title = new Vector()
private Vector[] array
// public static void main(String[] args) {
// ExcelDemo demo = new ExcelDemo()
// demo.getXlsInfo()
//
// }
public void method(TabelData table) {
int row = table.getRowSize()
int column = table.getColumnSize()
WritableWorkbook book = null
Vector title = table.setTitle()
Object[] str = title.toArray()
try {
book = Workbook.createWorkbook(new File("test.xls"))
WritableSheet sheet = book.createSheet("成绩表", 0)
for (int i = 0i <str.lengthi++) {
sheet.addCell(new Label(i, 0, (String) str[i]))
}
for (int i = 1i <row + 1i++) {
for (int j = 1j <column + 1j++) {
sheet.addCell(new Label(j - 1, i, table.getTableInfo(i - 1,
j - 1)))
}
}
book.write()
JOptionPane.showMessageDialog(null, "导出完成!")
} catch (IOException e) {
e.printStackTrace()
} catch (RowsExceededException e) {
e.printStackTrace()
} catch (WriteException e) {
e.printStackTrace()
} finally {
try {
book.close()
} catch (WriteException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
}
}
}
/**
* 输出Excel的数据到表单
*
* @return
*/
public Vector getXlsInfo() {
Vector v = new Vector()
jxl.Workbook rwb = null
int index = 0
try {
rwb = jxl.Workbook.getWorkbook(new File("test.xls"))
Sheet[] sheet = rwb.getSheets()
for (int i = 0i <sheet.lengthi++) {
int rs = sheet[i].getRows()
array = new Vector[rs - 1]
for (int j = 1j <rsj++) {
Cell[] cell = sheet[i].getRow(j)
Vector info = new Vector()
for (int k = 0k <cell.lengthk++) {
info.add(cell[k].getContents())
}
array[index] = info
index++
v.add(info)
}
Cell[] titleCell = sheet[i].getRow(0)
for (int j = 0j <titleCell.lengthj++) {
title.add(titleCell[j].getContents())
}
}
} catch (BiffException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
} finally {
rwb.close()
}
return v
}
public Vector getXlsInfoToCredit() {
Vector v = new Vector()
jxl.Workbook rwb = null
try {
rwb = jxl.Workbook.getWorkbook(new File("d:/test/信科0821(南迁).xls"))
Sheet[] sheet = rwb.getSheets()
for (int i = 0i <sheet.lengthi++) {
int rs = sheet[i].getRows()
array = new Vector[rs - 1]
for (int j = 1j <rsj++) {
Cell[] cell = sheet[i].getRow(j)
Vector info = new Vector()
for (int k = 0k <cell.lengthk++) {
// if(){
Pattern p = Pattern.compile("[0-9]{1,}")
Matcher m = p.matcher(cell[k].getContents())
if (m.matches()) {
int score = Integer.valueOf(cell[k].getContents())
float result = getScore(score)
info.add(result)
} else {
info.add(cell[k].getContents())
}
}
v.add(info)
}
Cell[] titleCell = sheet[i].getRow(0)
for (int j = 0j <titleCell.lengthj++) {
title.add(titleCell[j].getContents())
}
}
} catch (BiffException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
} finally {
rwb.close()
}
return v
}
public float getScore(int n) {
float score = n
if (n <60) {
score = 0
return score
} else {
if (n >= 60 &&n <= 63) {
score = (float) 1.0
} else if (n >= 64 &&n <= 67) {
score = (float) 1.3
} else if (n >= 68 &&n <= 71) {
score = (float) 1.7
} else if (n >= 72 &&n <= 75) {
score = (float) 2.0
} else if (n >= 76 &&n <= 79) {
score = (float) 2.3
} else if (n >= 80 &&n <= 83) {
score = (float) 2.7
} else if (n >= 84 &&n <= 87) {
score = (float) 3.0
} else if (n >= 88 &&n <= 91) {
score = (float) 3.3
} else if (n >= 92 &&n <= 95) {
score = (float) 3.7
} else if (n >= 96 &&n <= 100) {
score = (float) 4.0
}
return score
}
}
public Vector getTitle() {
// getXlsInfo()
return title
}
public Vector[] getArray() {
getXlsInfo()
return array
}
}
因为时间问题就没有再写了,上面是我以前做的,不懂就q我
这是我以前写的代码,放在action里。图片在pojo类中对应为byte[]类型,clxxb是一个pojo类,clxxb.getClpic()得到图片对应的字节数组byte[]。其实输出文件就是输出一个字节流。希望对你有帮助。InputStream input=clxxb.getClpic().getBinaryStream()
byte[] buffer=new byte[input.available()]
ServletOutputStream out=response.getOutputStream()
int length=0
while((length=input.read(buffer))!=-1){
out.write(buffer,0,length)
}
out.flush()
out.close()
只要有数据库连接驱动就可以连接某个服务器上的数据库,只要你有数据库登录账户mysql-connector-java-5.1.25.zip的官网下载地址:
http://dev.mysql.com/downloads/connector/j/点击download,希望你注册的界面,你直接点击
No thanks, just start my download.就行了