Java生成Excel文件Word文档格式.docx
- 文档编号:20723286
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:18
- 大小:20.65KB
Java生成Excel文件Word文档格式.docx
《Java生成Excel文件Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java生成Excel文件Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
(1)经由过程HSSFFont类创建字体对象
HSSFFontfont=workbook.createFont();
//由workbook创建字体
(2)经由过程font来设置字体属性
font.setFontHeightPoints((short)8);
//设置字体属性
font.setFontHeight((short)HSSFFont.BOLDWEIGHT_NORMAL);
font.setColor((short)(HSSFFont.COLOR_RED));
(3)经由过程HSSFCellStyle类创建单元格样式对象
HSSFCellStylecellstyle=workbook.createCellStyle();
//由workbook创建单元格样式
(4)经由过程cellstyle来设置样式属性
cellstyle.setFont(font);
//设置样式属性
(5)经由过程HSSFCell类创建单元格对象
HSSFRowrow=workbook.createRow((short)0);
(6)将样式运用于单元格对象
cell.setCellStyle(cellstyle);
//运用已创建的样式
四、读取Excel单元格中的数据
要读取单元格中的数据必须经由以下步骤
(1)创建对Excel文档的引用对象
获取C盘根目次下的test电子表格文件的引用对象workbook.
HSSFWorkbookworkbook=newHSSFWorkbook(newFileInputStream(“C:
\\test.xls”));
(2)获取工作区表对象
经由过程workbook对象获得工作区test表对象.
HSSFSheetsheet=workbook.getSheet(“test”);
假如工作区未知,可以经由过程工作区的缺省标识”0”,来获得表对象.
HSSFSheetsheet=workbook.getSheetAt(0);
(3)获取行对象
经由过程工作区表对象sheet来获取行对象.
HSSFRowrow=sheet.getRow(0);
(4)获取单元格对象
经由过程行对象row来获得单元格对象.
(5)读取单元格中的数据
经由过程单元格对象cell的getStringCellValue()来读取单元格中的数据.
cell.getStringCellValue();
五、如安在Excel表格中显示数据
Excel文档由行元素和列元素组成,把数据按照整行整列显示,可以经由过程轮回掌握实现.
症结代码如下.
inti=0;
while(table.next())
{
HSSFRowdataRow=sheet.createRow((short)(i+2));
//创建一行
for(intj=0;
j<
9;
j++)
HSSFCellcell=dataRow.createCell((short)j);
//创建单元格
cell.styleCellStyle(dataStyle);
//设置单元格样式
Stringdata=table.getString(j+2);
//掏出一笔记载的记载项目
cell.setCellValue(data);
//把数据写到单元格里
}
i++;
开辟进程
一、创建实现类
当用户单击“查看”时,会将所有人员所有人员信息显示到Excel中.这进程分两步完成,第一步,从数据库中将数据查出来并保消失SqlRowSet聚集中;
第二步,将聚集中数据显示在Excel电子表格中.
(1)从数据库掏出数据
取数据出UserXslController类完成.在handleRequest办法中,先创建衔接,然后向数据库发送SQL语句查询出成果,这里的返回成果类型为SqlRowSet,它可以相似于ResultSet那样遍历成果集.将聚集放在Map键值对里,传给UserXslView类.代码如下.
UserXslController.java
publicclassUserXslControllerimplementsController{
privateMapmsg=newHashMap();
publicModelAndViewhandleRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwException
Stringname=request.getParameter(“selectname”);
Stringclassname=newString(name.getBytes(“ISO_8859_1”).”gb2312”);
msg.put(“title”,classname+”学生具体信息”);
//获得数据源
DriverManagerDataSourcedmds=newDriverManagerDataSource();
//获得url
dmds.setDriverClassName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);
//获得驱动
dmds.setUrl(“jdbc:
Microsoft:
sqlservler:
//127.0.0.1:
1433;
DatabaseName=DB_Excel12”);
dmds.setUsername(“sa”);
//数据库用户名
dmds.setPassword(“sa“);
//数据库暗码
JdbcTemplatejtl=newJdbcTemplate(dmds);
//将数据源JdbcTemplate模板
//运用queryForRowSet办法查询返回成果为SqlRowSet类型
SqlRowSetlist=jtl.queryForRowSet(“SELECTstu_id,name,sex,age,sfzhm,csrq,zzmm.jtdh,jtdz,jkzkFROMtab_stuinfowhereclassid=’”+classname+”’”);
msg.put(“table”,list);
//将成果集存到map中
returnnewModelAndView(“customxslview”,msg);
(2)在Excel中显示数据
起首继续Sping供给的AbstractExcelView类,并且在buildExcelDocument()办法中编写显示代码.参数model是Map类型,用于吸收UserXslController类携带的数据.获昨数据后,先设置标题.表头字体和样式,然后将model里的数据轮回写入Excel文档显示.程序代码如下.
UserXslView.java
publicclassUserXslViewextendsAbstractExcelView{
protectedvoidbuildExcelDocument(Mapmodel,HSSFWorkbookworkbook,HttpServletRequestrequest,HttpServletResponseresponse)throwsException
SqlRowSettable=(SqlRowSet)model.get(“table”);
//取得数据聚集
Stringtitle=model.get(“title”).toString();
//取得标题
HSSFSheetsheet=workbook.createSheet(title);
//创建工作区
HSSFRowrow_title=sheet.createRow(0);
//创建行对象
HSSFFonttitle_font=workbook.createFont();
//创建标题的字体
title_font.setFontHeightInPoints((short)8);
//设置标题字体属性
title_font.setFontHeight((short)HSSFFont.BOLDWEIGHT_NORMAL);
//同上
title_font.setColor((short)(HSSFFont.COLOR_RED));
//设置字体色彩
HSSFCellStyletitle_style=workbook.createCellStyle();
//创建样式
title_style.setFont(title_font);
//设置标题样式属性
HSSFCellcell_title=row_title.createCell((short)1);
//创建单元格对象
cell_title.setCellStyle(title_style);
cell_title.setCellValue(title);
//将标题写到Excel表格里
//以上为标题的字体和样式的属性设置
Stringtitles[]={“学生姓名”,”性别”,”年纪”,”身份证号”,”出诞辰期”,”政治面孔”,”家庭德律风”,”家庭地址”,”健康状态”};
HSSFRowrow=sheet.createRow((short)1);
//创建行
HSSFCellStyleitems_style=workbook.createCellStyle();
Items_style.setAlignment((short)HSSFCellStyle.ALIGN_CENTER);
//设置表头样式
HSSFFontcelltbnamefont=workbook.createFont();
//创建字体
celltbnamefont.setFontHeightInPoints((short)10);
//设置表头字体属性
celltbnamefont.setColor((short)(HSSFFont.COLOR_RED));
//设置表头字体色彩
items_style.setFont(celltbnamefont);
items_style.setWrapText(true);
for(inti=0;
i<
titles.length;
i++)
HSSFCellcell=row.createCell((short)i);
if(i==3||i==6||i==2)
sheet.setColumnWidth((short)i,(short)5335);
//设置Excel中列的宽度
else
sheet.setColumnWidth((short)i,(short)3335);
//设置Excel中列的宽度
cell.setCellStyle(items_style)
//设置到此停止
cell.setCellValue(titles[i]);
//将数据表头数据写到单元格里
HSSFCellStyledatestyle=workbook.createCellStyle();
HSSFDataFormatdf=workbook.createDataFormat();
//设置日期在Excel中的显示格局
datastyle.setDataFormat(df.getFormat(“yyyy-MM-dd”));
(3)创建读Excel数据的类
创建ReadXslController
该掌握器的功效是读取Excel文档中的数据并把它显示在掌握台上.代码如下.
ReadXslController.java
publicclassReadXslControllerimplementsController{
privateStringtext[][];
privateshortcolumns;
privateintrows;
publicModelAndViewhandleRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsException
Stringpp=request.getParameter(“path”);
Stringpath=newString(pp.getBytes(“ISO_8859_1”),”gb2312”);
HSSFWorkbookworkbook=newHSSFWorkbook(newFileInputStream(path));
HSSFRowrow=sheet.getRow(sheet.getLastRowNum());
rows=sheet.getLastRowNum()+1;
columns=row.getLastCellNum();
text=newString[row][columns];
rows;
Row=sheet.getRow(i);
for(shortj=0;
columns;
if(row==null)
Text[i][j]=null;
continue;
HSSFCellcell;
inttype=0;
cell=row.getCell(j);
if(cell!
=null)
type=cell.getCellType();
if(type==0)
Doublenum=cell.getNumericCellValue();
DecimalFormatdf=newDecimalFormat(“0.00”);
Stringsize=df.format(num);
Text[i][j]=size;
elseif(type==1)
Stringstring=cell.getRichStringCellValue().toString();
text[i][j]=string
returnnewModelAndView(“display”,”list”,text);
读Excel文件的示例类
/**
*@(#)Poit.java
*@Description:
从excel中读取数据
*
*@authorwjj
*@version1.002008/2/29
*/
packagecom.ysusoft.util.db;
importorg.apache.poi.poifs.filesystem.POIFSFileSystem;
importjava.io.FileOutputStream;
importjava.io.FileInputStream;
importjava.sql.*;
importjava.util.Date;
importjava.text.SimpleDateFormat;
publicclassPoit{
POIFSFileSystemfs=null;
HSSFWorkbookwb=null;
HSSFSheetcurrentSheet=null;
Stringfilename="
c:
/2008-04-27_all.xls"
;
publicPoit()
{
try{
fs=newPOIFSFileSystem(newFileInputStream("
));
wb=newHSSFWorkbook(fs);
}
catch(Exceptione)
System.out.print("
errors"
);
publicPoit(Stringurl)
fs=newPOIFSFileSystem(newFileInputStream(url));
catch(Exceptione)
System.out.print("
errors2"
//设置要读取的文件名
publicvoidsetFileName(Stringfilename)
this.filename=filename;
//依据类对象的文件名来生成Excel文件流(无参函数)
publicvoidCreateWorkbook()
fs=newPOIFSFileSystem(newFileInputStream(this.filename));
CreateWorkbook():
Error!
"
//依据Sheet索引生成当前Sheet
publicvoidsetCurrentSheet(intsheet)
currentSheet=wb.getSheetAt(sheet);
//依据指定的文件名来生成Excel文件流
publicvoidCreateWorkbook(Stringurl)
//得到Sheet的总行数
publicintgetRows()
introws=currentSheet.getLastRowNum()+1;
returnrows;
//得到Sheet的总列数
publicintgetColumns(introw)
HSSFRowCellRow=currentSheet.getRow(row);
intcolumns=CellRow.getLastCellNum()+1;
returncolumns;
//获取固定行列的excel数据
publicStringgetValue(introw1,intcoll){
//HSSFSheetsheet=wb.getSheetAt(0);
HSSFRowcellRow=currentSheet.getRow(row1);
HSSFCellcell=cellRow.getCell((short)coll);
if(cell!
=null)
switch(cell.getCellType()){//0为整形,假如是数值型数据
case0:
//当单元格类型为日期型时
if(HSSFDateUtil.isCellDateFormatted(cell)){
SimpleDateFormatym=newSimpleDateFormat("
yyyy-MM-dd"
returnym.format(cell.getDateCellValue());
//cell.getDateCellValue().getYear()+"
-"
//+cell.getDateCellValue().getMonth();
}else{
//System.out.println("
输出"
returnDouble.toString(cell.getNumericCellValue());
//return
//String.valueOf((long)cell.getNumericCellValue());
//假如是字符型数据
case1:
//Sys
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 生成 Excel 文件
![提示](https://static.bdocx.com/images/bang_tan.gif)