|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
多谢指点,其实我对.net和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。
第一步写action办法:- publicStringexportActiveExcel()
- {
- Stringname="活泼度列表.xls";
- try{
- name=java.net.URLEncoder.encode(name,"UTF-8");
- fileName=newString(name.getBytes(),"iso-8859-1");
- }catch(UnsupportedEncodingExceptione){
- e.printStackTrace();
- }
- return"success";
- }
复制代码 fileName为类变量要天生get和set办法,作为文件的称号
第二步把数据写进到一个流里:- publicInputStreamgetInputStream()
- {
- //测试先生
- ExportExcelex=newExportExcel();
- String[]headers={"学号","姓名","岁数","性别","出身日期"};
- JSONArrayarray=newJSONArray();
- JSONArrayarr=newJSONArray();
- arr.add(10000001);
- arr.add("张三");
- arr.add(20);
- arr.add(true);
- arr.add("2013-5-6");
- JSONArrayarr1=newJSONArray();
- arr1.add(10000002);
- arr1.add("李四");
- arr1.add(24);
- arr1.add(false);
- arr1.add("2013-5-6");
- array.add(arr);
- array.add(arr1);
- returnex.exportExcel("活泼度剖析",headers,array);
- }
复制代码 用到的类:- publicclassExportExcel
- {
- @SuppressWarnings("deprecation")
- publicInputStreamexportExcel(Stringtitle,String[]headers,JSONArrayarray)
- {
- //声明一个事情薄
- HSSFWorkbookworkbook=newHSSFWorkbook();
- //天生一个表格
- HSSFSheetsheet=workbook.createSheet(title);
- //设置表格默许列宽度为15个字节
- sheet.setDefaultColumnWidth((short)30);
- //天生一个题目款式
- HSSFCellStyletitleStyle=workbook.createCellStyle();
- //设置这些款式
- titleStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
- titleStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
- titleStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
- titleStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
- titleStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
- titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
- //天生一个题目字体
- HSSFFontfont=workbook.createFont();
- font.setColor(HSSFColor.VIOLET.index);
- font.setFontHeightInPoints((short)12);
- font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
- //把字体使用到以后的款式
- titleStyle.setFont(font);
- //天生内容款式
- HSSFCellStylecontentStyle=workbook.createCellStyle();
- contentStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
- contentStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
- contentStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
- contentStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
- contentStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
- contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
- contentStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
- //天生内容字体
- HSSFFontcontentFont=workbook.createFont();
- contentFont.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
- //把字体使用到以后的款式
- contentStyle.setFont(contentFont);
- //发生表格题目行
- HSSFRowrow=sheet.createRow(0);
- for(shorti=0;i<headers.length;i++)
- {
- HSSFCellcell=row.createCell(i);
- cell.setCellStyle(titleStyle);
- HSSFRichTextStringtext=newHSSFRichTextString(headers[i]);
- cell.setCellValue(text);
- }
- //天生内容行
- for(inti=0;i<array.size();i++)
- {
- row=sheet.createRow(i+1);
- JSONArrayarr=(JSONArray)array.get(i);
- for(intj=0;j<arr.size();j++)
- {
- HSSFCellcell=row.createCell(j);
- cell.setCellStyle(contentStyle);
- HSSFRichTextStringrichString=newHSSFRichTextString(arr.get(j).toString());
- HSSFFontfont3=workbook.createFont();
- font3.setColor(HSSFColor.BLUE.index);
- richString.applyFont(font3);
- cell.setCellValue(richString);
- }
- }
- //写进输入流
- ByteArrayOutputStreambaos=newByteArrayOutputStream();
- try
- {
- workbook.write(baos);//写进
- }
- catch(IOExceptione)
- {
- e.printStackTrace();
- }
- byte[]ba=baos.toByteArray();
- ByteArrayInputStreambais=newByteArrayInputStream(ba);
- try
- {
- baos.close();
- }
- catch(IOExceptione)
- {
- e.printStackTrace();
- }
- returnbais;
- }
- }
复制代码 检察本栏目更多出色内容:http://www.bianceng.cn/Programming/Java/
第三步设置struts.xml文件- <actionname="exportActiveExcel"class="activeCountAction"
- method="exportActiveExcel">
- <resultname="success"type="stream">
- <paramname="contentType">application/vnd.ms-excel</param>
- <paramname="contentDisposition">attachment;filename="${fileName}"</param>
- <paramname="inputName">inputStream</param>
- <paramname="bufferSize">4096</param>
- </result>
- </action>
复制代码 inputName的值要与流的办法分歧,天生getXxxxx,否则找不到办法
在页面上间接挪用action办法的路径
<inputtype="button"value="数据导出"onclick="javascript:window.location.href=exportActiveExcel;"/>
到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。 |
|