电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java操作Excel、PDF文件(2)

瀏覽:156日期:2022-07-21 16:19:46

wbook.write(); // 寫入文件

wbook.close();

os.close();

return "success";

}

}

public class ExcelBean {

public String expordExcel(OutputStream os, List courseList,List studentList)

throws Exception {

WritableWorkbook wbook = Workbook.createWorkbook(os); // 建立excel文件

String tmptitle = "課程“"+((Course_info)courseList.get(0)).getCource_name()+"的選課學生列表"// 標題

WritableSheet wsheet = wbook.createSheet("第一頁", 0); // sheet名稱

// 設置excel標題

WritableFont wfont = new WritableFont(WritableFont.ARIAL, 16,

WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,

Colour.BLACK);

WritableCellFormat wcfFC = new WritableCellFormat(wfont);

wsheet.addCell(new Label(1, 0, tmptitle, wcfFC));

wfont = new jxl.write.WritableFont(WritableFont.ARIAL, 14,

WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,

Colour.BLACK);

wcfFC = new WritableCellFormat(wfont);

// 開始生成主體內容

wsheet.addCell(new Label(0, 2, "課程名稱"));

wsheet.addCell(new Label(1, 2, "學 號"));

.........

for(int i=3;i<studentList.size()+3;i++)

{

wsheet.addCell(new Label(0, i, ((Course_info)courseList.get(0)).getCource_name()));

wsheet.addCell(new Label(1, i, ((Student_info)studentList.get(0)).getStudentID()));

...........

}

// 主體內容生成結束

wbook.write(); // 寫入文件

wbook.close();

os.close();

return "success";

}

}

控制器:

Java代碼

public class EExcelDownController extends AbstractController {

private ICourse_infoManage courseManage;

public void setCourseManage(ICourse_infoManage courseManage) {

this.courseManage = courseManage;

}

@Override

protected ModelAndView handleRequestInternal(HttpServletRequest request,

HttpServletResponse response) throws Exception {

Integer course_id=new Integer(request.getParameter("course_id"));

List courseList=this.courseManage.getCourseById(course_id);

List studentList = this.courseManage.getStudentByCourseId(course_id);

try {

OutputStream os = response.getOutputStream();// 取得輸出流

response.reset();// 清空輸出流

response.setHeader("Content-disposition", "attachment; filename=student.xls");// 設定輸出文件頭

response.setContentType("application/msexcel");// 定義輸出類型

ExcelBean excelBean = new ExcelBean();

excelBean.expordExcel(os,courseList,studentList);// 調用生成excel文件bean

} catch (Exception e) {

System.out.println(e);

}

return null;

}

}

將Excel文件內容寫入到數據庫

Java代碼

publicclass EStudentInsertExcelController extends SimpleFormController{

private IStudent_infoManage studentManage;

@Override

protected ModelAndView onSubmit(HttpServletRequest request,

HttpServletResponse response, Object command, BindException errors)

throws Exception{

Student_info student_info = (Student_info) command;

try;{

MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

MultipartFile file = multipartRequest.getFile( " Excelfile " ); // 獲得文件:

File toFile =new File( " c:學生信息臨時文件.xls " ); // 產生文件名和空文件

file.transferTo(toFile); // 文件上傳

Workbook book = Workbook.getWorkbook(toFile); // 得到工作薄

Sheet sheet = book.getSheet( 0 ); // 獲得第一個工作表對象

int row = sheet.getRows(); // /得到該sheet的行數

int column = sheet.getColumns(); // 得到該sheet的列數

System.out.println( " 數據行數= " + row);

System.out.println( " 數據列數= " + column);

for ( int i = 1 ;i < row;i ++ )

{

for ( int j = 0 ;j < column;j ++ )

{

System.out.println( " j= " + j);

sheet.getCell(j, i).getContents(); // 得到第j列第i行的單元格的類容

student_info.setStudentID(sheet.getCell(j, i).getContents());

........................

}

if ( this .studentManage.getStudentByStudentID(

student_info.getStudentID()).size() !=0 )

returnnew ModelAndView( " education/e-studentInfoAddError " );

this .studentManage.insertStudent_info(student_info);

}

book.close();

returnnew ModelAndView( " education/e-studentInfoAddExcelSuccess " , " row " , new Integer(row - 1 ));

}catch (Exception e){

e.printStackTrace();

}

returnnew ModelAndView( " education/e-studentInfoAddExcelError " );

}

publicvoid setStudentManage(IStudent_infoManage studentManage){

this .studentManage = studentManage;

}

}

spring 生成Excel和PDF文件

HTML頁面并不總是向用戶顯示數據輸出的最好方式,有時候需要生成不可改變的文件打印,PDF可能是種不錯的選擇。

Spring支持從數據動態生成PDF或Excel文件

下面這個簡單實現的例子實現了spring輸出PDF和Excel文件,為了使用Excel電子表格,你需要在你的classpath中加入poi-2.5.1.jar庫文件,而對PDF文件,則需要iText.jar文件。它們都包含在Spring的主發布包中。

下面是測試項目代碼:

1、控制器配置代碼

Java代碼

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean id="beanNameViewResolver"

class="org.springframework.web.servlet.view.BeanNameViewResolver" />

<bean id="viewController" class="com.zhupan.spring.ViewController" />

<bean id="urlMapping"

class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

<property name="mappings">

<props>

<prop key="/view*.shtml">viewController</prop>

</props>

</property>

</bean>

</beans>

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean id="beanNameViewResolver"

class="org.springframework.web.servlet.view.BeanNameViewResolver" />

<bean id="viewController" class="com.zhupan.spring.ViewController" />

<bean id="urlMapping"

class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

<property name="mappings">

<props>

<prop key="/view*.shtml">viewController</prop>

</props>

</property>

</bean>

</beans>

3、用于Excel視圖的視圖子類化

為了在生成輸出文檔的過程中實現定制的行為,我們將繼承合適的抽象類。對于Excel,這包括提供一個 org.springframework.web.servlet.view.document.AbstractExcelView的子類,并實現 buildExcelDocument方法。

Java代碼

public class ViewExcel extends AbstractExcelView {

public void buildExcelDocument(

Map model, HSSFWorkbook workbook,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

HSSFSheet sheet = workbook.createSheet("list");

sheet.setDefaultColumnWidth((short) 12);

HSSFCell cell = getCell(sheet, 0, 0);

setText(cell, "Spring Excel test");

HSSFCellStyle dateStyle = workbook.createCellStyle();

dateStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));

cell = getCell(sheet, 1, 0);

cell.setCellValue(new Date());

cell.setCellStyle(dateStyle);

getCell(sheet, 2, 0).setCellValue(458);

HSSFRow sheetRow = sheet.createRow(3);

for (short i = 0; i < 10; i++) {

sheetRow.createCell(i).setCellValue(i * 10);

}

}

}

public class ViewExcel extends AbstractExcelView {

public void buildExcelDocument(

Map model, HSSFWorkbook workbook,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

HSSFSheet sheet = workbook.createSheet("list");

sheet.setDefaultColumnWidth((short) 12);

HSSFCell cell = getCell(sheet, 0, 0);

setText(cell, "Spring Excel test");

HSSFCellStyle dateStyle = workbook.createCellStyle();

dateStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));

cell = getCell(sheet, 1, 0);

cell.setCellValue(new Date());

cell.setCellStyle(dateStyle);

getCell(sheet, 2, 0).setCellValue(458);

HSSFRow sheetRow = sheet.createRow(3);

for (short i = 0; i < 10; i++) {

sheetRow.createCell(i).setCellValue(i * 10);

}

}

}

4、用于PDF視圖的視圖子類化

需要象下面一樣繼承org.springframework.web.servlet.view.document.AbstractPdfView,并實現buildPdfDocument()方法。

Java代碼

public class ViewPDF extends AbstractPdfView {

public void buildPdfDocument(Map model, Document document,

PdfWriter writer, HttpServletRequest request,

HttpServletResponse response) throws Exception {

List list = (List) model.get("list");

for (int i = 0; i < list.size(); i++)

document.add(new Paragraph((String) list.get(i)));

}

}

public class ViewPDF extends AbstractPdfView {

public void buildPdfDocument(Map model, Document document,

PdfWriter writer, HttpServletRequest request,

HttpServletResponse response) throws Exception {

List list = (List) model.get("list");

for (int i = 0; i < list.size(); i++)

document.add(new Paragraph((String) list.get(i)));

}

}

5、其他文件

1)控制器ViewController

Java代碼

public class ViewController extends MultiActionController{

public ModelAndView viewPDF(HttpServletRequest request, HttpServletResponse response) throws Exception {

List list = new ArrayList();

Map model=new HashMap();

list.add("test1");

list.add("test2");

model.put("list",list);

ViewPDF viewPDF=new ViewPDF();

return new ModelAndView(viewPDF,model);

}

public ModelAndView viewExcel(HttpServletRequest request, HttpServletResponse response) throws Exception {

List list = new ArrayList();

Map model=new HashMap();

list.add("test1");

list.add("test2");

model.put("list",list);

ViewExcel viewExcel=new ViewExcel();

return new ModelAndView(viewExcel,model);

}

}

public class ViewController extends MultiActionController{

public ModelAndView viewPDF(HttpServletRequest request, HttpServletResponse response) throws Exception {

List list = new ArrayList();

Map model=new HashMap();

list.add("test1");

list.add("test2");

model.put("list",list);

ViewPDF viewPDF=new ViewPDF();

return new ModelAndView(viewPDF,model);

}

public ModelAndView viewExcel(HttpServletRequest request, HttpServletResponse response) throws Exception {

List list = new ArrayList();

Map model=new HashMap();

list.add("test1");

list.add("test2");

model.put("list",list);

ViewExcel viewExcel=new ViewExcel();

return new ModelAndView(viewExcel,model);

}

}

2)web.xml

Java代碼

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>springPDFTest</display-name>

<servlet>

<servlet-name>springPDFTest</servlet-name>

<servlet-class>

org.springframework.web.servlet.DispatcherServlet

</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>springPDFTest</servlet-name>

<url-pattern>*.shtml</url-pattern>

</servlet-mapping>

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

</web-app>

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>springPDFTest</display-name>

<servlet>

<servlet-name>springPDFTest</servlet-name>

<servlet-class>

org.springframework.web.servlet.DispatcherServlet

</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>springPDFTest</servlet-name>

<url-pattern>*.shtml</url-pattern>

</servlet-mapping>

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

</web-app>

3)index.jsp

Java代碼

<%@ page contentType="text/html; charset=gb2312"%>

<a href="viewPDF.shtml">PDF視圖打開 </a>

<br>

<a href="viewExcel.shtml">Excel視圖打開</a>

網頁鏈接到Excel打開時亂碼解決辦法:

問題:

Java代碼

< ahref ="excel/test.xls" > 打開 </ a > 【亂碼】

< ahref ="excel/test.xls" > 打開 </ a > 【亂碼】

解決方法:

web.xml里加上 :

Java代碼

< mime-mapping >

< extension > xls </ extension >

< mime-type > application/vnd.ms-excel </ mime-type >

</ mime-mapping >

< mime-mapping >

< extension > xls </ extension >

< mime-type > application/vnd.ms-excel </ mime-type >

</ mime-mapping >;

標簽: excel
相關文章:
主站蜘蛛池模板: 睿婕轻钢别墅_钢结构别墅_厂家设计施工报价 | 上海新光明泵业制造有限公司-电动隔膜泵,气动隔膜泵,卧式|立式离心泵厂家 | 2025世界机器人大会_IC China_半导体展_集成电路博览会_智能制造展览网 | 绿萝净除甲醛|深圳除甲醛公司|测甲醛怎么收费|培训机构|电影院|办公室|车内|室内除甲醛案例|原理|方法|价格立马咨询 | 重庆波纹管|重庆钢带管|重庆塑钢管|重庆联进管道有限公司 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 北京自然绿环境科技发展有限公司专业生产【洗车机_加油站洗车机-全自动洗车机】 | 氧化铁红厂家-淄博宗昂化工 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 市政路灯_厂家-淄博信达电力科技有限公司 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 不锈钢钢格栅板_热浸锌钢格板_镀锌钢格栅板_钢格栅盖板-格美瑞 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 微信小程序定制,广州app公众号商城网站开发公司-广东锋火 | 长沙网站建设制作「网站优化推广」-网页设计公司-速马科技官网 | 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 无尘烘箱_洁净烤箱_真空无氧烤箱_半导体烤箱_电子防潮柜-深圳市怡和兴机电 | 广州企亚 - 数码直喷、白墨印花、源头厂家、透气无手感方案服务商! | 自进式锚杆-自钻式中空注浆锚杆-洛阳恒诺锚固锚杆生产厂家 | 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | HYDAC过滤器,HYDAC滤芯,现货ATOS油泵,ATOS比例阀-东莞市广联自动化科技有限公司 | 厂房出租-厂房规划-食品技术-厂房设计-厂房装修-建筑施工-设备供应-设备求购-龙爪豆食品行业平台 | 杭州实验室尾气处理_实验台_实验室家具_杭州秋叶实验设备有限公司 | 专业生物有机肥造粒机,粉状有机肥生产线,槽式翻堆机厂家-郑州华之强重工科技有限公司 | hc22_hc22价格_hc22哈氏合金—东锜特殊钢 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 期货软件-专业期货分析软件下载-云智赢 | 北京公司注册_代理记账_代办商标注册工商执照-企力宝 | 打包钢带,铁皮打包带,烤蓝打包带-高密市金和金属制品厂 | 机床主轴维修|刀塔维修|C轴维修-常州翔高精密机械有限公司 | 聚丙烯酰胺_阴离子_阳离子「用量少」巩义亿腾厂家直销,售后无忧 聚合甘油__盐城市飞龙油脂有限公司 | 西安中国国际旅行社(西安国旅) | 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 光栅尺_Magnescale探规_磁栅尺_笔式位移传感器_苏州德美达 | 铝扣板-铝方通-铝格栅-铝条扣板-铝单板幕墙-佳得利吊顶天花厂家 elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 密集柜_档案密集柜_智能密集架_密集柜厂家_密集架价格-智英伟业 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 密集架-手摇-智能-移动-价格_内蒙古档案密集架生产厂家 | 艺术漆十大品牌_艺术涂料加盟代理_蒙太奇艺术涂料厂家品牌|艺术漆|微水泥|硅藻泥|乳胶漆 | 珠光砂保温板-一体化保温板-有釉面发泡陶瓷保温板-杭州一体化建筑材料 |