java讀取本地excel
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
很多朋友都想知道java本地excel是什麼?怎麼讀取?下面就一起來了解一下吧~
java excel api:是一開放源碼項目,通過它Java開發人員可以讀取Excel文件的內容、創建新的Excel文件、更新已經存在的Excel文件。使用該API非Windows操作系統也可以通過純Java應用來處理Excel數據表。因爲它是使用Java編寫的,所以在Web應用中可以通過JSP、Servlet來調用API實現對Excel數據表的訪問。
Java通過jexcelapi包操作excel文件:
//in ExcelHandle import jxl.*; import jxl.format.UnderlineStyle; import jxl.write.*; import jxl.write.Number; import jxl.write.Boolean; import jxl.Cell; import java.io.*; public class ExcelHandle { public ExcelHandle() { } /***讀取Excel*/ public static void readExcel(String filePath) { try { InputStream is = new FileInputStream(filePath); Workbook rwb = Workbook.getWorkbook(is); //這裏有兩種方法獲取sheet表:名字和下標(從0開始) //Sheet st = rwb.getSheet("original"); Sheet st = rwb.getSheet(0); /** //獲得第一行第一列單元的值 Cell c00 = st.getCell(0,0); //通用的獲取cell值的方式,返回字符串 String strc00 = c00.getContents(); //獲得cell具體類型值的方式 if(c00.getType() == CellType.LABEL) { LabelCell labelc00 = (LabelCell)c00; strc00 = labelc00.getString(); } //輸出 System.out.println(strc00);*/ //Sheet的下標是從0開始 //獲取第一張Sheet表 Sheet rst = rwb.getSheet(0); //獲取Sheet表中所包含的總列數 int rsColumns = rst.getColumns(); //獲取Sheet表中所包含的總行數 int rsRows = rst.getRows(); //獲取指定單元格的對象引用 for (int i = 0; i < rsRows; i++) { for (int j = 0; j < rsColumns; j++) { Cell cell = rst.getCell(j, i); System.out.print(cell.getContents() + " "); } System.out.println(); } //關閉 rwb.close(); } catch(Exception e) { e.printStackTrace(); } } /**輸出Excel*/ public static void writeExcel(OutputStream os) { try { /** 只能通過API提供的 工廠方法來創建Workbook,而不能使用WritableWorkbook的構造函數,因爲類WritableWorkbook的構造函數爲 protected類型:方法一:直接從目標文件中讀取 WritableWorkbook wwb = Workbook.createWorkbook(new File(targetfile));方法 二:如下實例所示 將WritableWorkbook直接寫入到輸出流*/ WritableWorkbook wwb = Workbook.createWorkbook(os); //創建Excel工作表 指定名稱和位置 WritableSheet ws = wwb.createSheet("Test Sheet 1",0); /**************往工作表中添加數據*****************/ //1.添加Label對象 Label label = new Label(0,0,"測試"); ws.addCell(label); //添加帶有字型Formatting對象 WritableFont wf = new WritableFont(WritableFont.TIMES,18,WritableFont.BOLD,true); WritableCellFormat wcf = new WritableCellFormat(wf); Label labelcf = new Label(1,0,"this is a label test",wcf); ws.addCell(labelcf); //添加帶有字體顏色的Formatting對象 WritableFont wfc = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false, UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.DARK_YELLOW); WritableCellFormat wcfFC = new WritableCellFormat(wfc); Label labelCF = new Label(1,0,"Ok",wcfFC); ws.addCell(labelCF); //2.添加Number對象 Number labelN = new Number(0,1,3.1415926); ws.addCell(labelN); //添加帶有formatting的Number對象 NumberFormat nf = new NumberFormat("#.##"); WritableCellFormat wcfN = new WritableCellFormat(nf); Number labelNF = new jxl.write.Number(1,1,3.1415926,wcfN); ws.addCell(labelNF); //3.添加Boolean對象 Boolean labelB = new jxl.write.Boolean(0,2,true); ws.addCell(labelB); Boolean labelB1 = new jxl.write.Boolean(1,2,false); ws.addCell(labelB1); //4.添加DateTime對象 jxl.write.DateTime labelDT = new jxl.write.DateTime(0,3,new java.util.Date()); ws.addCell(labelDT); //5.添加帶有formatting的DateFormat對象 DateFormat df = new DateFormat("dd MM yyyy hh:mm:ss"); WritableCellFormat wcfDF = new WritableCellFormat(df); DateTime labelDTF = new DateTime(1,3,new java.util.Date(),wcfDF); ws.addCell(labelDTF); //6.添加圖片對象,jxl只支持png格式圖片 File image = new File("f:1.png"); WritableImage wimage = new WritableImage(0,4,6,17,image); ws.addImage(wimage); //7.寫入工作表 wwb.write(); wwb.close(); } catch(Exception e) { e.printStackTrace(); } } /** 將file1拷貝後,進行修改並創建輸出對象file2 * 單元格原有的格式化修飾不能去掉,但仍可將新的單元格修飾加上去, * 以使單元格的內容以不同的形式表現 */ public static void modifyExcel(File file1,File file2) { try { Workbook rwb = Workbook.getWorkbook(file1); WritableWorkbook wwb = Workbook.createWorkbook(file2,rwb);//copy WritableFont wfc = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false, UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLUE); WritableCellFormat wcfFC = new WritableCellFormat(wfc); WritableSheet ws = wwb.getSheet(0); WritableCell wc = ws.getWritableCell(0,0); //判斷單元格的類型,做出相應的轉換 if(wc.getType() == CellType.LABEL) { Label labelCF =new Label(0,0,"人物(新)",wcfFC); ws.addCell(labelCF); //Label label = (Label)wc; //label.setString("被修改"); } wwb.write(); wwb.close(); rwb.close(); } catch(Exception e) { e.printStackTrace(); } } //測試 public static void main(String args[]) { try { //讀EXCEL ExcelHandle.readExcel("F:/紅樓人物.xls"); //輸出EXCEL File filewrite=new File("F:/紅樓人物2.xls"); filewrite.createNewFile(); OutputStream os=new FileOutputStream(filewrite); ExcelHandle.writeExcel(os); //修改EXCEL ExcelHandle.modifyExcel(new File("F:/紅樓人物.xls"), new File("F:/紅樓人物3.xls")); } catch(Exception e) { e.printStackTrace(); } } }
-
qq怎麼恢復被退出的羣
21世紀是互聯網信息時代,互聯網聊天軟件發揮重要信息溝通作用,一些我們不需要的聊天羣會選擇退出,也會由於不小心或者別的原因退出了qq羣,那麼退出的聊天羣該怎麼恢復呢?退出的qq羣只有羣主能進行恢復操作,管理員不能恢復,而且只能恢復被羣主或管理員刪除的羣成員。而...
-
汽車均衡器怎麼調音質好
1、首先打開播放器,播放一首歌,選擇均衡器。2、就可以進行相應的設置,在選擇自定義的時候。3、需要了解音樂均衡器的各個頻段所增益的樂器及調節效果,20HZ-40HZ,在這一段中提升能夠使音樂變得強而有力。4、40HZ-150HZ,是聲音的基礎部分,聲音豐滿柔和。...
-
蘋果手機相冊怎麼上鎖,蘋果手機相冊怎樣上鎖
1、在手機上下載騰訊手機管家APP,下載完畢點擊打開。2、進入手機管家後,選擇相冊管理。3、點擊加密相冊並進入。4、第一次進入加密相冊會要設置一個個人密碼,或者用戶可以通過指紋識別進入相冊。5、輸入密碼後,密碼如果正確,相冊會自動打開。6、進入相冊後,點擊添加,...
-
黑色背景拍照竅門詳解
1、調整拍攝角度,尋找背景:既然是拍攝黑背景,在拍攝前我們儘量選擇深色的背景,這樣也就更加容易達到效果。不過深色不一定要是純黑色,只要顏色較爲深沉,偏向暗色調的均可。拍攝前多多觀察,尋找不同的拍攝角度,以找到有反差的深色作爲背景。要多嘗試不同的角度,直至主體...