亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Apache POI HSSF讀寫Excel總結

系統 1961 0
Apache POI HSSF和XSSF讀寫EXCEL總結
HSSF是指2007年以前的,XSSF是指2007年版本以上的
這個還是比較好用的,這些總結來自Apache的官方向導的點點滴滴
還有好多沒有沒有寫的,詳細的請參考http://poi.apache.org/spreadsheet/quick-guide.html
還有LOG也比較好看

    
public class SummaryHSSF {

	public static void main(String[] args) throws IOException {
		//創建Workbook對象(這一個對象代表著對應的一個Excel文件)
                     //HSSFWorkbook表示以xls為后綴名的文件
		Workbook wb = new HSSFWorkbook();
		//獲得CreationHelper對象,這個應該是一個幫助類
		CreationHelper helper = wb.getCreationHelper();
		//創建Sheet并給名字(表示Excel的一個Sheet)
		Sheet sheet1 = wb.createSheet("HSSF_Sheet_1");		
		Sheet sheet2 = wb.createSheet("HSSF_Sheet_2");
		//Row表示一行Cell表示一列
		Row row = null;
		Cell cell = null;
		for(int i=0;i<60;i=i+2){
			//獲得這個sheet的第i行
			row = sheet1.createRow(i);
			//設置行長度自動			
			//row.setHeight((short)500);
			row.setHeightInPoints(20);
			//row.setZeroHeight(true);
			for(int j=0;j<25;j++){		
				//設置每個sheet每一行的寬度,自動,根據需求自行確定
				sheet1.autoSizeColumn(j+1, true);
				//創建一個基本的樣式
				CellStyle cellStyle = SummaryHSSF.createStyleCell(wb);
				//獲得這一行的每j列
				cell = row.createCell(j);
				if(j==0){
					//設置文字在單元格里面的位置
					cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);
					//先創建字體樣式,并把這個樣式加到單元格的字體里面
					cellStyle.setFont(createFonts(wb));
					//把這個樣式加到單元格里面
					cell.setCellStyle(cellStyle);					
					//給單元格設值
					cell.setCellValue(true);
				}else if(j==1){
					//設置文字在單元格里面的位置
					cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);
					//設置這個樣式的格式(Format)
					cellStyle = SummaryHSSF.setCellFormat(helper,cellStyle, "#,##0.0000");					
					//先創建字體樣式,并把這個樣式加到單元格的字體里面
					cellStyle.setFont(createFonts(wb));
					//把這個樣式加到單元格里面
					cell.setCellStyle(cellStyle);
					//給單元格設值
					cell.setCellValue(new Double(2008.2008));
				}else if(j==2){
					cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);					
					cellStyle.setFont(createFonts(wb));
					cell.setCellStyle(cellStyle);
					cell.setCellValue(helper.createRichTextString("RichString"+i+j));					
				}else if(j==3){
					cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);
					cellStyle = SummaryHSSF.setCellFormat(helper,cellStyle, "MM-yyyy-dd");
					cell.setCellStyle(cellStyle);
					cell.setCellValue(new Date());
				}else if(j==24){
					cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);
					cellStyle.setFont(createFonts(wb));
					//設置公式
					cell.setCellFormula("SUM(E"+(i+1)+":X"+(i+1)+")");					
				}else{					
					cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);
					cellStyle = SummaryHSSF.setFillBackgroundColors(cellStyle,IndexedColors.ORANGE.getIndex(),IndexedColors.ORANGE.getIndex(),CellStyle.SOLID_FOREGROUND);
					cell.setCellStyle(cellStyle);
					cell.setCellValue(1);
				}
			}
		}
		//輸出
		OutputStream os = new FileOutputStream(new File("c://SummaryHSSF.xls"));
		wb.write(os);
		os.close();		
	}
	/**
	 * 邊框
	 * @param wb
	 * @return
	 */
	public static CellStyle createStyleCell(Workbook wb){
		CellStyle cellStyle = wb.createCellStyle();
		//設置一個單元格邊框顏色
		cellStyle.setBorderBottom(CellStyle.BORDER_THIN);
		cellStyle.setBorderTop(CellStyle.BORDER_THIN);
		cellStyle.setBorderLeft(CellStyle.BORDER_THIN);
		cellStyle.setBorderRight(CellStyle.BORDER_THIN);
		//設置一個單元格邊框顏色
		cellStyle.setRightBorderColor(IndexedColors.BLACK.getIndex());
		cellStyle.setLeftBorderColor(IndexedColors.BLACK.getIndex());
		cellStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex());
		cellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex());		
		return cellStyle;
	}
	/**
	 * 設置文字在單元格里面的位置
	 * CellStyle.ALIGN_CENTER
	 * CellStyle.VERTICAL_CENTER
	 * @param cellStyle
	 * @param halign
	 * @param valign
	 * @return
	 */
	public static CellStyle setCellStyleAlignment(CellStyle cellStyle,short halign,short valign){
		//設置上下
		cellStyle.setAlignment(CellStyle.ALIGN_CENTER);
		//設置左右
		cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
		return cellStyle;
	}
	/**
	 * 格式化單元格
	 * 如#,##0.00,m/d/yy去HSSFDataFormat或XSSFDataFormat里面找
	 * @param cellStyle
	 * @param fmt
	 * @return
	 */
	public static CellStyle setCellFormat(CreationHelper helper,CellStyle cellStyle,String fmt){
		//還可以用其它方法創建format
		cellStyle.setDataFormat(helper.createDataFormat().getFormat(fmt));
		return cellStyle;
	}
	/**
	 * 前景和背景填充的著色
	 * @param cellStyle
	 * @param bg IndexedColors.ORANGE.getIndex();
	 * @param fg IndexedColors.ORANGE.getIndex();
	 * @param fp CellStyle.SOLID_FOREGROUND
	 * @return
	 */
	public static CellStyle setFillBackgroundColors(CellStyle cellStyle,short bg,short fg,short fp){
		//cellStyle.setFillBackgroundColor(bg);
		cellStyle.setFillForegroundColor(fg);
		cellStyle.setFillPattern(fp);
		return cellStyle;
	}
	/**
	 * 設置字體
	 * @param wb
	 * @return
	 */
	public static Font createFonts(Workbook wb){
		//創建Font對象
		Font font = wb.createFont();
		//設置字體
		font.setFontName("黑體");
		//著色
		font.setColor(HSSFColor.BLUE.index);
		//斜體
		font.setItalic(true);
		//字體大小
		font.setFontHeight((short)300);
		return font;
	}
}

  

讀取Excel文件
    
public class ReadExcel {
	public static void main(String[] args) throws Exception {
		InputStream is = new FileInputStream(new File("c://SummaryHSSF.xls"));
		//根據輸入流創建Workbook對象
		Workbook wb = WorkbookFactory.create(is);
		//get到Sheet對象
		Sheet sheet = wb.getSheetAt(0);
		//這個必須用接口
		for(Row row : sheet){
			for(Cell cell : row){
				//cell.getCellType是獲得cell里面保存的值的type
				//如Cell.CELL_TYPE_STRING
				switch(cell.getCellType()){
					case Cell.CELL_TYPE_BOOLEAN:
						//得到Boolean對象的方法
						System.out.print(cell.getBooleanCellValue()+" ");
						break;
					case Cell.CELL_TYPE_NUMERIC:
						//先看是否是日期格式
						if(DateUtil.isCellDateFormatted(cell)){
							//讀取日期格式
							System.out.print(cell.getDateCellValue()+" ");
						}else{
							//讀取數字
							System.out.print(cell.getNumericCellValue()+" ");
						}
						break;
					case Cell.CELL_TYPE_FORMULA:
						//讀取公式
						System.out.print(cell.getCellFormula()+" ");
						break;
					case Cell.CELL_TYPE_STRING:
						//讀取String
						System.out.print(cell.getRichStringCellValue().toString()+" ");
						break;					
				}
			}
			System.out.println("");
		}
	}
}

  


還有一種傳統的讀法
    
Sheet sheet = wb.getSheetAt(0);
	for (Iterator rit = sheet.rowIterator(); rit.hasNext(); ) {
		Row row = (Row)rit.next();
		for (Iterator cit = row.cellIterator(); cit.hasNext(); ) {
			Cell cell = (Cell)cit.next();
			// Do something here
		}
	}
					HSSFSheet sheet = wb.getSheetAt(0);
	for (Iterator<HSSFRow> rit = (Iterator<HSSFRow>)sheet.rowIterator(); rit.hasNext(); ) {
		HSSFRow row = rit.next();
		for (Iterator<HSSFCell> cit = (Iterator<HSSFCell>)row.cellIterator(); cit.hasNext(); ) {
			HSSFCell cell = cit.next();
			// Do something here
		}
	}



  

Apache POI HSSF讀寫Excel總結


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 快射视频网 | 国产一及毛片 | 欧美一级看片a免费观看 | 五月天婷五月天综合网在线 | 中文字幕一区二区三区四区五区人 | 日韩美女一级毛片 | 久久久国产高清 | 亚洲欧美成人 | 亚洲视频免费 | 在线亚洲精品国产波多野结衣 | 欧美视频一级 | 欧美成人自拍 | 国产一区在线播放 | 奇米影视四色中文字幕 | 综合久久久久久久综合网 | 成人性色大片 | 全黄大全大色全免费大片 | 国产a不卡片精品免费观看 国产a高清 | 国内精品久久久久 | xxx国产老太婆视频 xxx毛片 | 亚洲精品国产成人7777 | 综合色综合| 久久婷婷综合在线视频观看6 | 色婷婷色婷婷 | 四虎视频国产精品免费入口 | 一级大片视频 | 亚洲国产aaa毛片无费看 | 色鬼久久 | 国产精品99一区二区三区 | 欧美jizzhd极品欧美 | 男任天堂2021 | 性大特级毛片视频 | 四虎影音先锋 | 在线观看国产欧美 | 亚洲国产品综合人成综合网站 | 日本一区二区三区在线观看 | 高清欧美色欧美综合网站 | 午夜视频入口 | 九九热视频免费在线观看 | 日韩欧美一区二区精品久久 | 四虎免费在线 |