讀:
讀的時候是這樣的一個思路,先用一個輸入流(InputStream)得到Excel文件,然后用jxl中的Workbook得到工作薄,用Sheet從工作薄中得到工作表,用Cell得到工作表中得某個單元格.
InputStream->Workbook->Sheet->Cell,就得到了excel文件中的單元格
代碼:
String path="c:\\excel.xls";//Excel文件URL
InputStream is = new FileInputStream(path);//寫入到FileInputStream
jxl.Workbook wb = Workbook.getWorkbook(is); //得到工作薄
jxl.Sheet st = wb.getSheet(0);//得到工作薄中的第一個工作表
Cell cell=st.getCell(0,0);//得到工作表的第一個單元格,即A1
String content=cell.getContents();//getContents()將Cell中的字符轉(zhuǎn)為字符串
wb.close();//關(guān)閉工作薄
is.close();//關(guān)閉輸入流
我們可以通過Sheet的getCell(x,y)方法得到任意一個單元格,x,y和excel中的坐標(biāo)對應(yīng).
例如A1對應(yīng)(0,0),A2對應(yīng)(0,1),D3對應(yīng)(3,2).Excel中坐標(biāo)從A,1開始,jxl中全部是從0開始.
還可以通過Sheet的getRows(),getColumns()方法得到行數(shù)列數(shù),并用于循環(huán)控制,輸出一個sheet中的所有內(nèi)容.
寫:
往Excel中寫入內(nèi)容主要是用jxl.write包中的類.
思路是這樣的:
OutputStreamßWritableWorkbookßWritableSheetßLabel
這里面Label代表的是寫入Sheet的Cell位置及內(nèi)容.
代碼:
OutputStream os=new FileOutputStream("c:\\test.xls");//輸出的Excel文件URL
WritableWorkbook wwb = Workbook.createWorkbook(os);//創(chuàng)建可寫工作薄
WritableSheet ws = wwb.createSheet("sheet1", 0);//創(chuàng)建可寫工作表
Label labelCF=new Label(0, 0, "hello");//創(chuàng)建寫入位置和內(nèi)容
ws.addCell(labelCF);//將Label寫入sheet中
Label的構(gòu)造函數(shù)Label(int x, int y,String aString)xy意同讀的時候的xy,aString是寫入的內(nèi)容.
WritableFont wf = new WritableFont(WritableFont.TIMES, 12, WritableFont.BOLD, false);//設(shè)置寫入字體
WritableCellFormat wcfF = new WritableCellFormat(wf);//設(shè)置CellFormat
Label labelCF=new Label(0, 0, "hello");//創(chuàng)建寫入位置,內(nèi)容和格式
Label的另一構(gòu)造函數(shù)Label(int c, int r, String cont, CellFormat st)可以對寫入內(nèi)容進(jìn)行格式化,設(shè)置字體及其它的屬性.
現(xiàn)在可以寫了
wwb.write();
寫完后關(guān)閉
wwb.close();
輸出流也關(guān)閉吧
os.close;
OK,只要把讀和寫結(jié)合起來,就可以在N個Excel中讀取數(shù)據(jù)寫入你希望的Excel新表中,還是比較方便的.
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |