|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
JAVA学习必须明确这是一项投资,对于大多数的人来说,学习JAVA是为了就业,还有就是刚走向工作位置的朋友想尽快赶上工作的节奏。excelWorkbook类供应的办法
1.intgetNumberOfSheets()
取得事情薄(Workbook)中事情表(Sheet)的个数,示例:
jxl.Workbookrwb=jxl.Workbook.getWorkbook(newFile(sourcefile));
intsheets=rwb.getNumberOfSheets();
2.Sheet[]getSheets()
前往事情薄(Workbook)中事情表(Sheet)对象数组,示例:
jxl.Workbookrwb=jxl.Workbook.getWorkbook(newFile(sourcefile));
Sheet[]sheets=rwb.getSheets();
3.StringgetVersion()
前往正在利用的API的版本号,仿佛是没甚么太年夜的感化。
jxl.Workbookrwb=jxl.Workbook.getWorkbook(newFile(sourcefile));
StringapiVersion=rwb.getVersion();
Sheet接口供应的办法
1)StringgetName()
猎取Sheet的称号,示例:
jxl.Workbookrwb=jxl.Workbook.getWorkbook(newFile(sourcefile));
jxl.Sheetrs=rwb.getSheet(0);
StringsheetName=rs.getName();
2)intgetColumns()
猎取Sheet表中所包括的总列数,示例:
jxl.Workbookrwb=jxl.Workbook.getWorkbook(newFile(sourcefile));
jxl.Sheetrs=rwb.getSheet(0);
intrsColumns=rs.getColumns();
3)Cell[]getColumn(intcolumn)
猎取某一列的一切单位格,前往的是单位格对象数组,示例:
jxl.Workbookrwb=jxl.Workbook.getWorkbook(newFile(sourcefile));
jxl.Sheetrs=rwb.getSheet(0);
Cell[]cell=rs.getColumn(0);
4)intgetRows()
猎取Sheet表中所包括的总行数,示例:
jxl.Workbookrwb=jxl.Workbook.getWorkbook(newFile(sourcefile));
jxl.Sheetrs=rwb.getSheet(0);
intrsRows=rs.getRows();
5)Cell[]getRow(introw)
猎取某一行的一切单位格,前往的是单位格对象数组,示例子:
jxl.Workbookrwb=jxl.Workbook.getWorkbook(newFile(sourcefile));
jxl.Sheetrs=rwb.getSheet(0);
Cell[]cell=rs.getRow(0);
6)CellgetCell(intcolumn,introw)
猎取指订单元格的对象援用,必要注重的是它的两个参数,第一个是列数,第二个是行数,这与一般的行、列组合有些分歧。
jxl.Workbookrwb=jxl.Workbook.getWorkbook(newFile(sourcefile));
jxl.Sheetrs=rwb.getSheet(0);
Cellcell=rs.getCell(0,0);
2、天生新的Excel事情薄
上面的代码次要是向人人先容怎样天生复杂的Excel事情表,在这里单位格的内容是不带任何润色的(如:字体,色彩等等),一切的内容都作为字符串写进。(完全代码见ExcelWriting.java)
与读取Excel事情表类似,起首要利用Workbook类的工场办法创立一个可写进的事情薄(Workbook)对象,这里要注重的是,只能经由过程API供应的工场办法来创立Workbook,而不克不及利用WritableWorkbook的机关函数,由于类WritableWorkbook的机关函数为protected范例。示例代码片断以下:
importjava.io.*;
importjxl.*;
importjxl.write.*;
…………
try
{
//构建Workbook对象,只读Workbook对象
//Method1:创立可写进的Excel事情薄
jxl.write.WritableWorkbookwwb=Workbook.createWorkbook(newFile(targetfile));
//Method2:将WritableWorkbook间接写进到输入流
/*
OutputStreamos=newFileOutputStream(targetfile);
jxl.write.WritableWorkbookwwb=Workbook.createWorkbook(os);
*/
}
catch(Exceptione)
{
e.printStackTrace();
}
API供应了两种体例来处置可写进的输入流,一种是间接天生当地文件,假如文件名不带全路径的话,缺省的文件会定位在以后目次,假如文件名带有全路径的话,则天生的Excel文件则会定位在响应的目次;别的一种是将Excel对象间接写进到输入流,比方:用户经由过程扫瞄器来会见Web服务器,假如HTTP头设置准确的话,扫瞄器主动挪用客户真个Excel使用程序,来显现静态天生的Excel电子表格。
接上去就是要创立事情表,创立事情表的办法与创立事情薄的办法几近一样,一样是经由过程工场形式办法取得响应的对象,该办法必要两个参数,一个是事情表的称号,另外一个是事情表在事情薄中的地位,参考上面的代码片断:
//创立Excel事情表
jxl.write.WritableSheetws=wwb.createSheet("TestSheet1",0);
"这锅也支好了,质料也筹办完全了,能够入手下手下锅了!",如今要做的只是实例化API所供应的Excel基础数据范例,并将它们增加到事情表中就能够了,参考上面的代码片断:
//1.增加Label对象
jxl.write.LabellabelC=newjxl.write.Label(0,0,"ThisisaLabelcell");
ws.addCell(labelC);
//增加带有字型Formatting的对象
jxl.write.WritableFontwf=newjxl.write.WritableFont(WritableFont.TIMES,18,WritableFont.BOLD,true);
jxl.write.WritableCellFormatwcfF=newjxl.write.WritableCellFormat(wf);
jxl.write.LabellabelCF=newjxl.write.Label(1,0,"ThisisaLabelCell",wcfF);
ws.addCell(labelCF);
//增加带有字体色彩Formatting的对象
jxl.write.WritableFontwfc=newjxl.write.WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,
Underlinestyle.NO_UNDERLINE,jxl.format.Colour.RED);
jxl.write.WritableCellFormatwcfFC=newjxl.write.WritableCellFormat(wfc);
jxl.write.LabellabelCFC=newjxl.write.Label(1,0,"ThisisaLabelCell",wcfFC);
ws.addCell(labelCF);
//2.增加Number对象
jxl.write.NumberlabelN=newjxl.write.Number(0,1,3.1415926);
ws.addCell(labelN);
//增加带有formatting的Number对象
jxl.write.NumberFormatnf=newjxl.write.NumberFormat("#.##");
jxl.write.WritableCellFormatwcfN=newjxl.write.WritableCellFormat(nf);
jxl.write.NumberlabelNF=newjxl.write.Number(1,1,3.1415926,wcfN);
ws.addCell(labelNF);
//3.增加Boolean对象
jxl.write.BooleanlabelB=newjxl.write.Boolean(0,2,false);
ws.addCell(labelB);
//4.增加DateTime对象
jxl.write.DateTimelabelDT=newjxl.write.DateTime(0,3,newjava.util.Date());
ws.addCell(labelDT);
//增加带有formatting的DateFormat对象
jxl.write.DateFormatdf=newjxl.write.DateFormat("ddMMyyyyhh:mm:ss");
jxl.write.WritableCellFormatwcfDF=newjxl.write.WritableCellFormat(df);
jxl.write.DateTimelabelDTF=newjxl.write.DateTime(1,3,newjava.util.Date(),wcfDF);
ws.addCell(labelDTF);
这里有两点人人要引发人人的注重。第一点,在机关单位格时,单位格在事情表中的地位就已断定了。一旦创立后,单位格的地位是不克不及够变动的,只管单位格的内容是能够改动的。第二点,单位格的定位是依照上面如许的纪律(column,row),并且下标都是从0入手下手,比方,A1被存储在(0,0),B1被存储在(1,0)。
最初,不要健忘封闭翻开的Excel事情薄对象,以开释占用的内存,拜见上面的代码片断:
//写进Exel事情表
wwb.write();
//封闭Excel事情薄对象
wwb.close();
这大概与读取Excel文件的操纵有极少分歧,在封闭Excel对象之前,你必需要先挪用write()办法,由于先前的操纵都是存储在缓存中的,以是要经由过程该办法将操纵的内容保留在文件中。假如你先封闭了Excel对象,那末只能失掉一张空的事情薄了。
3、拷贝、更新Excel事情薄
接上去扼要先容一下怎样更新一个已存在的事情薄,次要是上面二步操纵,第一步是机关只读的Excel事情薄,第二步是使用已创立的Excel事情薄创立新的可写进的Excel事情薄,参考上面的代码片断:(完全代码见ExcelModifying.java)
//创立只读的Excel事情薄的对象
jxl.Workbookrw=jxl.Workbook.getWorkbook(newFile(sourcefile));
//创立可写进的Excel事情薄对象
jxl.write.WritableWorkbookwwb=Workbook.createWorkbook(newFile(targetfile),rw);
//读取第一张事情表
jxl.write.WritableSheetws=wwb.getSheet(0);
//取得第一个单位格对象
jxl.write.WritableCellwc=ws.getWritableCell(0,0);
//判别单位格的范例,做出响应的转化
if(wc.getType()==CellType.LABEL)
{
Labell=(Label)wc;
l.setString("Thevaluehasbeenmodified.");
}
//写进Excel对象
wwb.write();
//封闭可写进的Excel对象
wwb.close();
//封闭只读的Excel对象
rw.close();
之以是利用这类体例构建Excel对象,完整是由于效力的缘故原由,由于下面的示例才是API的次要使用。为了进步功能,在读取事情表时,与数据相干的一些输入信息,一切的格局信息,如:字体、色彩等等,是不被处置的,由于我们的目标是取得行数据的值,既使没有了润色,也不会对行数据的值发生甚么影响。独一的倒霉的地方就是,在内存中会同时保留两个一样的事情表,如许当事情表体积对照年夜时,会占用相称年夜的内存,但如今仿佛内存的巨细并非甚么关头要素了。
一旦取得了可写进的事情表对象,我们就能够对单位格对象举行更新的操纵了,在这里我们不用挪用API供应的add()办法,由于单位格已于事情表傍边,以是我们只必要挪用响应的setXXX()办法,就能够完成更新的操纵了。
尽单位格原本的格局化润色是不克不及往失落的,我们仍是能够将新的单位格润色加上往,以使单位格的内容以分歧的情势体现。
重生成的事情表对象是可写进的,我们除更新原本的单位分外,还能够增加新的单位格到事情表中,这与示例2的操纵是完整一样的。
最初,不要健忘挪用write()办法,将更新的内容写进到文件中,然后封闭事情薄对象,这里有两个事情薄对象要封闭,一个是只读的,别的一个是可写进的。
用winrar打包j2ee的程序和用IDE打包应用程序是一样的。按照你的想法,你是不是也希望服务器都整合由一家公司提供呢? |
|