java解析并且操作excel 方法Word格式文档下载.docx
《java解析并且操作excel 方法Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《java解析并且操作excel 方法Word格式文档下载.docx(44页珍藏版)》请在冰点文库上搜索。
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<
10;
i++){
for(intj=0;
j<
5;
j++){
//这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
LabellabelC=newLabel(j,i,"
这是第"
+(i+1)+"
行,第"
+(j+1)+"
列"
);
//将生成的单元格添加到工作表中
ws.addCell(labelC);
}catch(RowsExceededExceptione){
}catch(WriteExceptione){
//从内存中写入文件中
wwb.write();
//关闭资源,释放内存
wwb.close();
/**
*生成一个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<
columns;
s++){
//得到数组实例
styleArray[s]=templatewb.createCellStyle();
}
//循环对每一个单元格进行赋值
//定位行
for(introwId=1;
rowId<
dataList.size();
rowId++){
//依次取第rowId行数据每一个数据是valueList
ListvalueList=(List)dataList.get(rowId-1);
//定位列
for(intcolumnId=0;
columnId<
columnId++){
//依次取出对应与colunmId列的值
//每一个单元格的值
StringdataValue=(String)valueList.get(columnId);
//取出colunmId列的的style
//模板每一列的样式
HSSFCellStylestyle=styleArray[columnId];
//取模板第colunmId列的单元格对象
//模板单元格对象
HSSFCelltemplateCell=templateRow.getCell((short)columnId);
//创建一个新的rowId行行对象
//新建的行对象
HSSFRowhssfRow=templateSheet.createRow(rowId);
//创建新的rowId行columnId列单元格对象
//新建的单元格对象
HSSFCellcell=hssfRow.createCell((short)columnId);
//如果对应的模板单元格样式为非锁定
if(templateCell.getCellStyle().getLocked()==false){
//设置此列style为非锁定
style.setLocked(false);
//设置到新的单元格上
cell.setCellStyle(style);
//否则样式为锁定
else{
//设置此列style为锁定
style.setLocked(true);
//设置到新单元格上
//设置编码
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
//Debug.println("
dataValue:
+dataValue);
//设置值统一为String
cell.setCellValue(dataValue);
//设置输入流
FileOutputStreamfOut=newFileOutputStream(outputFile);
//将模板的内容写到输出文件上
templatewb.write(fOut);
fOut.flush();
//操作结束,关闭文件
fOut.close();
*导出数据为XLS格式
*@paramfos生成Excel文件Path
*@parambo要导入的数据
*/
publicstaticvoidwriteExcelBo(Stringfos,java.util.Listve)
{
jxl.write.WritableWorkbookwwb;
try
wwb=Workbook.createWorkbook(newFile(fos));
jxl.write.WritableSheetws=wwb.createSheet("
上市新书"
10);
ws.addCell(newjxl.write.Label(0,1,"
书名"
));
ws.addCell(newjxl.write.Label(1,1,"
作者"
ws.addCell(newjxl.write.Label(2,1,"
定价"
ws.addCell(newjxl.write.Label(3,1,"
出版社"
intbookSize=ve.size();
BookVObook=newBookVO();
for(inti=0;
i<
bookSize;
i++)
book=(BookVO)ve.get(i);
ws.addCell(newjxl.write.Label(0,i+2,"
"
+book.getBookName()));
ws.addCell(newjxl.write.Label(1,i+2,book.getBookAuthor()));
ws.addCell(newjxl.write.Label(2,i+2,"
+book.getBookPrice()));
ws.addCell(newjxl.write.Label(3,i+2,book.getBookConcern()));
//jxl.write.WritableFontwfc=
//newjxl.write.WritableFont(WritableFont.ARIAL,255,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK);
//jxl.write.WritableCellFormatwcfFC=newjxl.write.WritableCellFormat(wfc);
ws.addCell(newjxl.write.Label(0,0,"
2007年07月即将上市新书!
//关闭Excel工作薄对象
}catch(IOExceptione){
}catch(RowsExceededExceptione){
}catch(WriteExceptione){
publicstaticvoidmain(String[]args){
writeExcel("
c:
\\Test测试Excel.xls"
System.out.println("
OK"
ArrayListlist=newArrayList();
for(inti=0;
10;
i++){
book.setBookName("
WebWorkinaction+"
+i);
book.setBookAuthor("
唐勇+"
book.setBookPrice("
39元+"
book.setBookConcern("
飞思科技+"
list.add(book);
writeExcelBo("
\\上市新书.xls"
list);
System.err.println("
BookOK!
!
=================摘要=====================
java如何操作Excel(数据导入导出)(转)
jxl.jar,可以到
一.读取Excel文件内容
java代码
/**读取Excel文件的内容
*@paramfile待读取的文件
*@return
publicstaticStringreadExcel(Filefile){
StringBuffersb=newStringBuffer();
Workbookwb=null;
//构造Workbook(工作薄)对象
wb=Workbook.getWorkbook(file);
}catch(BiffExceptione){
if(wb==null)
returnnull;
//获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了
Sheet[]sheet=wb.getSheets();
if(sheet!
=null&
&
sheet.length>
0){
//对每个工作表进行循环
i
//得到当前工作表的行数
introwNum=sheet[i].getRows();
j
//得到当前行的所有单元格
Cell[]cells=sheet[i].getRow(j);
if(cells!
cells.length>
//对每个单元格进行循环
for(intk=0;
k
//读取当前单元格的值
StringcellValue=cells[k].getContents();
sb.append(cellValue+"
\t"
sb.append("
\r\n"
//最后关闭资源,释放内存
wb.close();
returnsb.toString();
二.写入Excel文件
这里有很多格式了,比如文本内容加粗,加上某些颜色等,可以参考jxl的api.
同时还推荐一篇不错的文章:
/**生成一个Excel文件
sheet1"
三.在一个Excel文件中查找是否包含某一个关键字
/**搜索某一个文件中是否包含某个关键字
*@paramfile待搜索的文件
*@paramkeyWord要搜索的关键字
publicstaticbooleansearchKeyWord(Filefile,StringkeyWord){
booleanres=false;
returnres;
booleanbreakSheet=false;
if(breakSheet)
break;
booleanbreakRow=false;
if(breakRow)
booleanbreakCell=false;
if(breakCell)
if(cellValue==null)
continue;
if(cellValue.contains(keyWord)){
res=true;
breakCell=true;
breakRow=true;
breakSheet=true;
四.往Excel中插入图片图标
插入图片的实现很容易,参看以下代码:
/**往Excel中插入图片
*@paramdataSheet待插入的工作表
*@paramcol图片从该列开始
*@paramrow图片从该行开始
*@paramwidth图片所占的列数
*@paramheight图片所占的行数
*@paramimgFile要插入的图片文件
publicstaticvoidinsertImg(WritableSheetdataSheet,intcol,introw,intwidth,
intheight,FileimgFile){
WritableImageimg=newWritableImage(col,row,width,height,imgFile);
dataSheet.addImage(img);
以上代码的注释已经很清楚了,大概也就不用再解释了,我们可以用如下程序验证:
//创建一个工作薄
WritableWorkbookworkbook=Workbook.createWorkbook(newFile("
D:
/test1.xls"
//待插入的工作表
WritableSheetimgSheet=workbook.createSheet("
Images"
0);
//要插入的图片文件
FileimgFile=newFile("
/1.png"
//图片插入到第二行第一个单元格,长宽各占六个单元格
ins