Java生成Excel文件Word文档格式.docx

上传人:b****5 文档编号:20723286 上传时间:2023-01-25 格式:DOCX 页数:18 大小:20.65KB
下载 相关 举报
Java生成Excel文件Word文档格式.docx_第1页
第1页 / 共18页
Java生成Excel文件Word文档格式.docx_第2页
第2页 / 共18页
Java生成Excel文件Word文档格式.docx_第3页
第3页 / 共18页
Java生成Excel文件Word文档格式.docx_第4页
第4页 / 共18页
Java生成Excel文件Word文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

Java生成Excel文件Word文档格式.docx

《Java生成Excel文件Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java生成Excel文件Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

Java生成Excel文件Word文档格式.docx

(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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1