📄 excelview.java
字号:
package zhangchunliang.model;
import jxl.Workbook;
import jxl.write.WritableWorkbook;
import jxl.write.WritableSheet;
import jxl.write.Label;
import jxl.write.WritableFont;
import jxl.write.WritableCellFormat;
import jxl.format.UnderlineStyle;
import jxl.format.Colour;
import java.io.OutputStream;
import javax.servlet.http.HttpServletResponse;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import zhangchunliang.model.DBHandler;
/**
* @author :张春亮|zhangchunliang@neusoft.com
* @version :0.1
*
* <p>Description :该类用于实现将一览表导出到excel</p>
* <p>Project :CIQMS</p>
* <P>Company :东软股份国际合作事业部</p>
* <p>CreateDate :2005-4-26</p>
*/
public class ExcelView {
/*
* name: showView()
* Description: 用于将指定的记录集导出到excel文件并且将该文件下载到客端
* @param HttpServletResponse类型用将excel文件返回给客户;ResultSet类型用于
* 传递要导出的记录集。
* @return 无
*/
public void showView(HttpServletResponse response,ResultSet dataSource){
try{
OutputStream outs=response.getOutputStream();
/* 设置response的Header,以实现下载功能 */
response.setHeader("Content-disposition",
"attachment; filename=ExcelView.xls");
response.setContentType("application/msexcel");
/* 创建一个excel文件 */
WritableWorkbook wwb=Workbook.createWorkbook(outs);
/* 创建一个工作表 */
WritableSheet ws=wwb.createSheet("Sheet1",0);
/* 获得指定记录集的结构信息 */
ResultSetMetaData rsmd=dataSource.getMetaData();
/* 获得指定记录集的字段数 */
int cols=rsmd.getColumnCount();
/* 设置单元格的字体和格式 */
WritableFont wf=new WritableFont(WritableFont.ARIAL,13,
WritableFont.BOLD,false,
UnderlineStyle.NO_UNDERLINE,Colour.BLACK);
WritableCellFormat wcf=new WritableCellFormat(wf);
wcf.setBackground(Colour.GRAY_25);
wcf.setShrinkToFit(true);
/* 将字段名写到excel文件中 */
for(int i=1;i<=cols;i++){
Label label=new Label(i-1,0,rsmd.getColumnName(i),wcf);
ws.addCell(label);
}
wf=null;
wcf=null;
/* 设置单元格的字体和格式 */
wf=new WritableFont(WritableFont.TIMES,10,
WritableFont.NO_BOLD,false,
UnderlineStyle.NO_UNDERLINE,Colour.BLACK);
wcf=new WritableCellFormat(wf);
wcf.setBackground(Colour.WHITE);
wcf.setShrinkToFit(true);
int row=1;
/* 将指定的记录集中的数据按行写入到excel文件中 */
while(dataSource.next()){
String str=""+row+": ";
for(int i=1;i<=cols;i++){
Label label=new Label(i-1,row,dataSource.getString(i),wcf);
ws.addCell(label);
}
row++;
}
wwb.write();
wwb.close();
}catch(Exception e){
e.printStackTrace();
}
}
/*
* name: getViewResultSet
* Description: 用于取得指定表的记录集
* @param String类型用于传递表名
* @return ResultSet类型用于返回记录集
*/
public ResultSet getViewResultSet(String targetTable){
DBHandler dbHandler=null;
ResultSet rtRs=null;
try{
dbHandler=new DBHandler();
rtRs=dbHandler.dbQuery(targetTable);
}catch(SQLException e){
return null;
}
return rtRs;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -