1、(1)经由过程HSSFFont类创建字体对象HSSFFont font=workbook.createFont();/由workbook创建字体(2)经由过程font来设置字体属性font.setFontHeightPoints(short)8);/设置字体属性font.setFontHeight(short)HSSFFont.BOLDWEIGHT_NORMAL);font.setColor(short)(HSSFFont.COLOR_RED);(3) 经由过程HSSFCellStyle类创建单元格样式对象HSSFCellStyle cellstyle=workbook.createCellS
2、tyle();/由workbook创建单元格样式(4) 经由过程cellstyle来设置样式属性cellstyle.setFont(font);/设置样式属性(5) 经由过程HSSFCell类创建单元格对象HSSFRow row=workbook.createRow(short)0);(6) 将样式运用于单元格对象cell.setCellStyle(cellstyle);/运用已创建的样式四、读取Excel单元格中的数据要读取单元格中的数据必须经由以下步骤(1)创建对Excel文档的引用对象获取C盘根目次下的test电子表格文件的引用对象workbook.HSSFWorkbook workbo
3、ok=new HSSFWorkbook(new FileInputStream(“C:test.xls”);(2)获取工作区表对象经由过程workbook对象获得工作区test表对象.HSSFSheet sheet=workbook.getSheet(“test”);假如工作区未知,可以经由过程工作区的缺省标识”0”,来获得表对象.HSSFSheet sheet=workbook.getSheetAt(0);(3)获取行对象经由过程工作区表对象sheet来获取行对象.HSSFRow row=sheet.getRow(0);(4)获取单元格对象经由过程行对象row来获得单元格对象.(5)读取单元
4、格中的数据经由过程单元格对象cell的getStringCellValue()来读取单元格中的数据.cell.getStringCellValue();五、如安在Excel表格中显示数据Excel文档由行元素和列元素组成,把数据按照整行整列显示,可以经由过程轮回掌握实现.症结代码如下.int i=0;while(table.next()HSSFRow dataRow=sheet.createRow(short)(i+2);/创建一行for(int j=0;j9;j+)HSSFCell cell=dataRow.createCell(short)j);/创建单元格cell.styleCellSt
5、yle(dataStyle);/设置单元格样式String data=table.getString(j+2);/掏出一笔记载的记载项目cell.setCellValue(data);/把数据写到单元格里i+;开辟进程一、创建实现类当用户单击“查看”时,会将所有人员所有人员信息显示到Excel中.这 进程分两步完成,第一步,从数据库中将数据查出来并保消失SqlRowSet聚集中;第二步,将聚集中数据显示在Excel电子表格中.(1)从数据库掏出数据取数据出UserXslController类完成.在handleRequest办法中,先创建衔接,然后向数据库发送SQL语句查询出成果,这里的返回成
6、果类型为SqlRowSet,它可以相似于ResultSet那样遍历成果集.将聚集放在Map键值对里,传给UserXslView类.代码如下.UserXslController.javapublic class UserXslController implements Controllerprivate Map msg=new HashMap();public ModelAndView handleRequest (HttpServletRequest request,HttpServletResponse response) throw ExceptionString name=request
7、.getParameter(“selectname”);String classname=new String(name.getBytes(“ISO_8859_1”).”gb2312”);msg.put(“title”,classname+”学生具体信息”);/获得数据源DriverManagerDataSource dmds=new DriverManagerDataSource();/获得urldmds.setDriverClassName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);/获得驱动dmds.setUrl(“jdbc:Micr
8、osoft:sqlservler:/127.0.0.1:1433;DatabaseName=DB_Excel12”);dmds.setUsername(“sa”);/数据库用户名dmds.setPassword(“sa“);/数据库暗码JdbcTemplate jtl=new JdbcTemplate(dmds);/将数据源JdbcTemplate模板/运用queryForRowSet办法查询返回成果为SqlRowSet类型SqlRowSet list=jtl.queryForRowSet(“SELECT stu_id,name,sex,age,sfzhm,csrq,zzmm.jtdh,jtd
9、z,jkzk FROM tab_stuinfo where class id=”+classname+”);msg.put(“table”,list);/将成果集存到map中return new ModelAndView(“customxslview”,msg);(2)在Excel中显示数据起首继续Sping供给的AbstractExcelView类,并且在buildExcelDocument()办法中编写显示代码.参数model是Map类型,用于吸收UserXslController类携带的数据.获昨数据后,先设置标题.表头字体和样式,然后将model里的数据轮回写入Excel文档显示.程序
10、代码如下.UserXslView.javapublic class UserXslView extends AbstractExcelViewprotected void buildExcelDocument(Map model,HSSFWorkbook workbook,HttpServletRequest request,HttpServletResponse response) throws ExceptionSqlRowSet table=(SqlRowSet)model.get(“table”);/取得数据聚集String title=model.get(“title”).toStr
11、ing();/取得标题HSSFSheet sheet=workbook.createSheet(title);/创建工作区HSSFRow row_title=sheet.createRow(0);/创建行对象HSSFFont title_font=workbook.createFont();/创建标题的字体title_font.setFontHeightInPoints(short)8);/设置标题字体属性title_font.setFontHeight(short)HSSFFont.BOLDWEIGHT_NORMAL);/同上title_font.setColor(short)(HSSFFo
12、nt.COLOR_RED);/设置字体色彩HSSFCellStyle title_style=workbook.createCellStyle();/创建样式title_style.setFont(title_font);/设置标题样式属性HSSFCell cell_title=row_title.createCell(short)1);/创建单元格对象cell_title.setCellStyle(title_style);cell_title.setCellValue(title);/将标题写到Excel表格里/以上为标题的字体和样式的属性设置String titles=“学生姓名”,”性
13、别”,”年纪”,”身份证号”,”出诞辰期”,”政治面孔”,”家庭德律风”,”家庭地址”,”健康状态”;HSSFRow row=sheet.createRow(short)1);/创建行HSSFCellStyle items_style=workbook.createCellStyle();Items_style.setAlignment(short)HSSFCellStyle.ALIGN_CENTER);/设置表头样式HSSFFont celltbnamefont=workbook.createFont();/创建字体celltbnamefont.setFontHeightInPoints(s
14、hort)10);/设置表头字体属性celltbnamefont.setColor(short)(HSSFFont.COLOR_RED);/设置表头字体色彩items_style.setFont(celltbnamefont);items_style.setWrapText(true);for(int i=0;ititles.length;i+)HSSFCell cell=row.createCell(short)i);if(i=3 | i=6 | i=2)sheet.setColumnWidth(short)i,(short)5335);/设置Excel中列的宽度elsesheet.setC
15、olumnWidth(short)i,(short)3335); /设置Excel中列的宽度cell.setCellStyle(items_style)/设置到此停止cell.setCellValue(titlesi);/将数据表头数据写到单元格里HSSFCellStyle datestyle=workbook.createCellStyle();HSSFDataFormat df=workbook.createDataFormat();/设置日期在Excel中的显示格局datastyle.setDataFormat(df.getFormat(“yyyy-MM-dd”);(3)创建读Excel
16、数据的类创建ReadXslController该掌握器的功效是读取Excel文档中的数据并把它显示在掌握台上.代码如下.ReadXslController.javapublic class ReadXslController implements Controllerprivate String text;private short columns;private int rows;public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception
17、String pp=request.getParameter(“path”);String path=new String(pp.getBytes(“ISO_8859_1”),”gb2312”);HSSFWorkbook workbook=new HSSFWorkbook(new FileInputStream(path);HSSFRow row=sheet.getRow(sheet.getLastRowNum();rows=sheet.getLastRowNum()+1;columns=row.getLastCellNum();text=new Stringrowcolumns;rows;R
18、ow=sheet.getRow(i);for(short j=0;columns;if(row=null)Textij=null;continue;HSSFCell cell;int type=0;cell=row.getCell(j);if(cell!=null)type=cell.getCellType();if(type=0)Double num=cell.getNumericCellValue();DecimalFormat df=new DecimalFormat(“0.00”);String size=df.format(num);Textij=size;else if(type=
19、1)String string=cell.getRichStringCellValue().toString();textij=stringreturn new ModelAndView(“display”,”list”,text);读Excel文件的示例类/* * (#)Poit.java * Description:从excel中读取数据 * * author wjj * version 1.00 2008/2/29 */package com.ysusoft.util.db;import org.apache.poi.poifs.filesystem.POIFSFileSystem;im
20、port java.io.FileOutputStream;import java.io.FileInputStream;import java.sql.*;import java.util.Date;import java.text.SimpleDateFormat;public class Poit POIFSFileSystem fs=null;HSSFWorkbook wb=null;HSSFSheet currentSheet=null;String filename=c:/2008-04-27_all.xls; public Poit() try fs=new POIFSFileS
21、ystem(new FileInputStream(); wb=new HSSFWorkbook(fs); catch(Exception e) System.out.print(errors); public Poit(String url) fs=new POIFSFileSystem(new FileInputStream(url);catch(Exception e)System.out.print(errors2 /设置要读取的文件名 public void setFileName(String filename) this.filename=filename; /依据类对象的文件名
22、来生成Excel文件流(无参函数) public void CreateWorkbook() fs=new POIFSFileSystem(new FileInputStream(this.filename);CreateWorkbook():Error! /依据Sheet索引生成当前Sheet public void setCurrentSheet(int sheet) currentSheet=wb.getSheetAt(sheet); /依据指定的文件名来生成Excel文件流 public void CreateWorkbook(String url) /得到Sheet的总行数 publ
23、ic int getRows() int rows=currentSheet.getLastRowNum()+1; return rows; /得到Sheet的总列数 public int getColumns(int row) HSSFRow CellRow=currentSheet.getRow(row); int columns=CellRow.getLastCellNum()+1; return columns; /获取固定行列的excel数据public String getValue(int row1, int coll) /HSSFSheet sheet = wb.getShee
24、tAt(0);HSSFRow cellRow = currentSheet.getRow(row1);HSSFCell cell = cellRow.getCell(short)coll);if (cell != null)switch (cell.getCellType() / 0为整形,假如是数值型数据case 0:/ 当单元格类型为日期型时if (HSSFDateUtil.isCellDateFormatted(cell) SimpleDateFormat ym = new SimpleDateFormat(yyyy-MM-ddreturn ym.format(cell.getDateCellValue();/ cell.getDateCellValue().getYear()+-/ +cell.getDateCellValue().getMonth(); else / System.out.println(输出return Double.toString(cell.getNumericCellValue();/ return/ String.valueOf(long)cell.getNumericCellValue();/ 假如是字符型数据case 1:/ Sys
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1