javaexcel导入模板.docx
- 文档编号:8780201
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:6
- 大小:18.36KB
javaexcel导入模板.docx
《javaexcel导入模板.docx》由会员分享,可在线阅读,更多相关《javaexcel导入模板.docx(6页珍藏版)》请在冰豆网上搜索。
javaexcel导入模板
竭诚为您提供优质文档/双击可除
java,excel导入模板
篇一:
java实现excel导入导出
java数据导入excel
packagecom.bossy.base;
importjava.io.File;
importjava.io.Fileinputstream;
importjava.io.Fileoutputstream;
importjava.io.ioexception;
importjava.util.arraylist;
importjava.util.list;
importjxl.workbook;
importjxl.format.underlinestyle;
importjxl.write.label;
importjxl.write.writableFont;
importjxl.write.writablesheet;
importjxl.write.writableworkbook;
importjxl.write.writeexception;
importjxl.write.biff.Rowsexceededexception;
importorg.apache.poi.hssf.usermodel.hssFcell;
importorg.apache.poi.hssf.usermodel.hssFcellstyle;
importorg.apache.poi.hssf.usermodel.hssFRow;
importorg.apache.poi.hssf.usermodel.hssFsheet;
importorg.apache.poi.hssf.usermodel.hssFworkbook;
importorg.apache.poi.poifs.filesystem.poiFsFilesystem;
publicclassexcelopt{
/**
*生成一(java,excel导入模板)个excel文件jxl
*@paramfilename要生成的excel文件名
*@jxl.jar版本:
2.6
*/
publicstaticvoidwriteexcel(stringfilename){
writableworkbookwwb=null;
try{
//首先要使用workbook类的工厂方法创建一个可写入的工作薄(workbook)对象
wwb=workbook.createworkbook(newFile(filename));
}catch(ioexceptione){
e.printstacktrace();
}
if(wwb!
=null){
//创建一个可写入的工作表
//workbook的createsheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置writablesheetws=wwb.createsheet("工作表名称",0);
//下面开始添加单元格
for(inti=0;i for(intj=0;j //这里需要注意的是,在excel中,第一个参数表示列,第二个表示行
labellabelc=newlabel(j,i,"这是第"+(i+1)+"行,第"+(j+1)+"列");
try{
//将生成的单元格添加到工作表中
ws.addcell(labelc);
}catch(Rowsexceededexceptione){
e.printstacktrace();
}catch(writeexceptione){
e.printstacktrace();
}
}
}
try{
//从内存中写入文件中
wwb.write();
//关闭资源,释放内存
wwb.close();
}catch(ioexceptione){
e.printstacktrace();
}catch(writeexceptione){
e.printstacktrace();
}
}
}
/**
*生成一个excel文件poi
*@paraminputFile输入模板文件路径
*@paramoutputFile输入文件存放于服务器路径
*@paramdatalist待导出数据
*@throwsexception
*@roseuid:
*/
publicstaticvoidexportexcelFile(stringinputFile,stringoutputFile,listdatalist)throwsexception{//用模板文件构造poi
poiFsFilesystemfs=newpoiFsFilesystem(newFileinputstream(inputFile));
//创建模板工作表
hssFworkbooktemplatewb=newhssFworkbook(fs);
//直接取模板第一个sheet对象
hssFsheettemplatesheet=templatewb.getsheetat
(1);
//得到模板的第一个sheet的第一行对象为了得到模板样式
hssFRowtemplateRow=templatesheet.getRow(0);
//hssFsheettimplatesheet=templatewb.getsheetat
(1);
//取得excel文件的总列数
intcolumns=templatesheet.getRow((short)0)
.getphysicalnumberofcells();
//debug.println("columnsis:
"+columns);//=========================
//创建样式数组
hssFcellstylestylearray[]=newhssFcellstyle[columns];
//一次性创建所有列的样式放在数组里
for(ints=0;s //得到数组实例
stylearray[s]=templatewb.createcellstyle();
}
//循环对每一个单元格进行赋值
//定位行
for(introwid=1;rowid //依次取第rowid行数据每一个数据是valuelist
listvaluelist=(list)datalist.get(rowid-1);
//定位列
for(intcolumnid=0;columnid //每一个单元格的值
stringdataValue=(string)valuelist.get(columnid);
//取出colunmid列的的style
//模板每一列的样式
hssFcellstylestyle=stylearray[columnid];
//取模板第colunmid列的单元格对象
//模板单元格对象
hssFcelltemplatecell=templateRow.getcell((short)columnid);//创建一个新的rowid行行对象
//新建的行对象
hssFRowhssfRow=templatesheet.createRow(rowid);//创建新的rowid行columnid列单元格对象
篇二:
java导入excel表格
1从excel文件读取数据表
javaexcelapi既可以从本地文件系统的一个文件(.xls),也可以从输入流中读取excel数据表。
读取excel数据表的第一步是创建workbook(术语:
工作薄),下面的代码片段举例说明了应该如何操作:
(完整代码见excelReading.java)
一旦创建了workbook,我们就可以通过它来访问excelsheet(术语:
工作表)。
参考下面的代码片段:
我们既可能通过sheet的名称来访问它,也可以通过下标来访问它。
如果通过下标来访问的话,要注意的一点是下标从0开始,就像数组一样。
一旦得到了sheet,我们就可以通过它来访问excelcell(术语:
单元格)。
参考下面的代码片段:
如果仅仅是取得cell的值,我们可以方便地通过getcontents()方法,它可以将任何类型的cell值都作为一个字符串返回。
示例代码中cell(0,0)是文本型,cell(1,0)是数字型,cell(1,1)是日期型,通过getcontents(),三种类型的返回值都是字符型。
如果有需要知道cell内容的确切类型,api也提供了一系列的方法。
参考下面的代码片段:
在得到cell对象后,通过gettype()方法可以获得该单元格的类型,然后与api提供的基本类型相匹配,强制转换成相应的类型,最后调用相应的取值方法getxxx(),就可以得到确定类型的值。
api提供了以下基本类型,与excel的数据格式相对应,如下图所示:
每种类型的具体意义,请参见javaexcelapidocument。
当你完成对excel电子表格数据的处理后,
一定要使用close()方法来关闭先前创建的对象,以释放读取数据表的过程中所占用的内存空间,在读取大量数据时显得尤为重要。
参考如下代码片段:
javaexcelapi提供了许多访问excel数据表的方法,在这里我只简要地介绍几个常用的方法,其它的方法请参考附录中的javaexcelapidocument。
workbook类提供的方法
1.intgetnumberofsheets()
获得工作薄(workbook)中工作表(sheet)的个数,示例:
2.sheet[]getsheets()
返回工作薄(workbook)中工作表(sheet)对象数组,示例:
3.stringgetVersion()
返回正在使用的api的版本号,好像是没什么太大的作用。
sheet接口提供的方法
1)stringgetname()
获取sheet的名称,示例:
2)intgetcolumns()
获取sheet表中所包含的总列数,示例:
3)cell[]getcolumn(intcolumn)
获取某一列的所有单元格,返回的是单元格对象数组,示例:
4)intgetRows()
获取sheet表中所包含的总行数,示例:
5)cell[]getRow(introw)
获取某一行的所有单元格,返回的是单元格对象数组,示例子:
6)cellgetcell(intcolumn,introw)
获取指定单元格的对象引用,需要注意的是它的两个参数,第一个是列数,第二个是行数,这与通常的行、列组合有些不同。
2生成新的excel工作薄
下面的代码主要是向大家介绍如何生成简单的excel工作表,在这里单元格的内容是不带任何修饰的(如:
字体,颜色等等),所有的内容都作为字符串写入。
(完整代码见excelwriting.java)
与读取excel工作表相似,首先要使用workbook类的工厂方法创建一个可写入的工作薄(workbook)对象,这里要注意的是,只能通过api提供的工厂方法来创建workbook,而不能使用writableworkbook的构造函数,因为类writableworkbook的构造函数为protected类型。
示例代码片段如下:
篇三:
jaVa的poi实现模版导出excel(带图片)
下面是本人使用java的poi实现使用模板到处excel,内容包含图片,使用两种不同的方式实现其到处excel。
但是使用jxl实现到处excel只能到处png格式。
packagecom.rxc.servlet;
importjava.awt.image.bufferedimage;
importjava.io.bufferedinputstream;
importjava.io.bufferedoutputstream;
importjava.io.bytearrayoutputstream;
importjava.io.File;
importjava.io.Fileinputstream;
importjava.io.Fileoutputstream;
importjava.io.ioexception;
importjavax.imageio.imageio;
importjavax.servlet.servletexception;
importjavax.servlet.servletoutputstream;
importjavax.servlet.http.httpservlet;
importjavax.servlet.http.httpservletRequest;
importjavax.servlet.http.httpservletResponse;
importorg.apache.poi.hssf.usermodel.hssFcell;
importorg.apache.poi.hssf.usermodel.hssFclientanchor;
importorg.apache.poi.hssf.usermodel.hssFpatriarch;
importorg.apache.poi.hssf.usermodel.hssFRow;
importorg.apache.poi.hssf.usermodel.hssFsheet;
importorg.apache.poi.hssf.usermodel.hssFworkbook;
importorg.apache.poi.poifs.filesystem.poiFsFilesystem;
publicclassoutexcelservletextendshttpservlet{
publicvoiddopost(httpservletRequestrequest,httpservletResponsethrowsservletexception,ioexception{response)publicvoiddoget(httpservletRequestrequest,httpservletResponse}throwsservletexception,ioexception{response)this.dopost(request,response);privatestaticfinallongserialVersionuid=1l;
stringonputimagepath=null;/***********************************************使用poi实现excel模版导出excel********************/
try{
poiFsFilesystemfs=newpoiFsFilesystem(newFileinputstream("d:
\\设备异常分析报告.xls"));
hssFworkbookwb=newhssFworkbook(fs);
//检查文件是否存在}//输出文件onputimagepath="d:
\\test1.xls";Fileoutputstreamwb.write(fileout);fileout.close();e.printstacktrace();fileout=newpatri.createpicture(anchor,wb.addpicture(bytearrayout.tobytearrahssFsheetsheet=wb.getsheet("设备异常分析报告");hssFRowrow=sheet.getRow
(2);hssFcellcell=row.getcell((short)2);if(cell==null){}cell.setcelltype(hssFcell.cell_type_stRing);cell.setcellValue("12321212");bytearrayoutputstreamstringbufferedimagebytearrayoutinputimagepathbufferimg==new=imageio.read(newcell=row.createcell((short)2);bytearrayoutputstream();"d:
\\1012051443548604211337adf6.jpg";File(inputimagepath));imageio.write(bufferimg,"jpg",bytearrayout);//设置图片大小,位置hssFclientanchoranchor=newhssFclientanchor(5,0,500,122,(short)0,5,(short)10,15);//创建hssFpatriarchpatri=sheet.createdrawingpatriarch();y(),hssFworkbook.pictuRe_type_png));Fileoutputstream(onputimagepath);}catch(exceptione){
if(!
obj.exists()){response.setcontenttype("text/html;charset=gbk");response.getwriter().print("指定文件不存在!
");return;}//读取文件名:
用于设置客户端保存时指定默认文件名intindex=onputimagepath.lastindexof("\\");//前提:
传入的path字符串以“\”表示目录分隔符
stringfilename=onputimagepath.substring(index+1);
//写流文件到前端浏览器servletoutputstreamout=response.getoutputstream();response.setheader("content-disposition",bufferedinputstreambis=null;bufferedoutputstreambos=null;try{bis=newbufferedinputstream(new"attachment;filename="+filename);Fileinputstream(onputimagepath));bos=newbufferedoutputstream(out);byte[]buff=newbyte[2048];intbytesRead;while(-1!
=(bytesRead=bis.read(buff,0,buff.length))){bos.write(buff,0,bytesRead);}}catch(ioexceptione){throwe;}finally{if(bis!
=null)bis.close();if(bos!
=null)bos.close();}}/*****************使用jxl实现excel模版导出excel但导出图片仅支持png格式**************************************
stringrealpath="d:
/test.xls";try{
maplistmp=data.getdata(accident_id);//选择模板文件:
workbookwb=workbook.getworkbook(newFile(realpath));//第二步:
通过模板得到一个可写的workbook:
第一个参数是一个输出流对象,第二个参数代表了要读取的模板
FiletargetFile=newFile("d:
/test1.xls");
writableworkbookwwb=workbook.createworkbook(targetFile,wb);//第三步:
选择模板中名称为设备异常的sheet:
writablesheetwws=wwb.getsheet("justcell");//第四步:
选择单元格,写入动态值,根据单元格的不同类型转换成相应类型的单元
labela1=newlabel(0,1,mp.getRow(0).get("accident_name"));wws.addcell(a1);
//插入图片
FileimgFile=newFile("d:
/test.png");
writableimageimage=newwritableimage(2,1,8,20,imgFile);wws.addimage(image);
wwb.write();
wwb.close();
wb.close();
}catch(biffexceptione){
//todoauto-generatedcatchblock
e.printstacktrace();
}catch(writeexceptione){
//todoauto-generatedcatchblock
e.printstacktrace();
}catch(exceptione){
//todoauto-generatedcatchblock
e.printstacktrace();
}格:
}
****************************************************************************/
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javaexcel 导入 模板