1. 程式人生 > >POI開發入門(四)遍歷Excel 和文字提取

POI開發入門(四)遍歷Excel 和文字提取

Apache POI (四) 遍歷Excel 和文字提取

一、
Excel遍歷

直接上程式碼:

package com.poi.hello;

import java.io.FileInputStream;
import java.io.InputStream;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;

/**
 * 作者:[<span style="color: rgb(68, 68, 68); font-size: 14px;  line-height: 24px;"><strong>Only丶愛你</strong></span>]
 * 功能:[ 遍歷工作簿的行和列 輸出值 ]
 */
public class Demo6 {
	public static void main(String[] args) throws Exception {
		
		InputStream inputStream = new FileInputStream("D:\\Child.xls");
		//POIFSFileSystem fs = new POIFSFileSystem(inputStream);
		HSSFWorkbook wb = new HSSFWorkbook(inputStream);
		//獲取第一個Sheet頁
		 HSSFSheet sheet = wb.getSheetAt(0);
		//遍歷行row
		for (int i = 0; i <= sheet.getLastRowNum(); i++) {
			Row row = sheet.getRow(i);
			for (int cellNum = 0; cellNum <  row.getLastCellNum(); cellNum++) {
				Cell cell = row.getCell(cellNum);
				System.out.print(getValue(cell)+"\t");
			}
			System.out.println();
		}
		
	}
	
<span style="white-space:pre">	</span>//呼叫這個方法 判斷 當前的單元格的值的型別
	private static String getValue(Cell cell){
		if(cell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){
			return String.valueOf(cell.getBooleanCellValue());
		}else if(cell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){
			return String.valueOf(cell.getNumericCellValue());
		}else{
			
			return String.valueOf(cell.getStringCellValue());
		}
	}
}


二、
Excel文字提取

注意:這個方法 只是官方提供的一個檢視Excel所有文字的一個方法
public class Demo7 {
	public static void main(String[] args) throws Exception {
		
		InputStream inputStream = new FileInputStream("D:\\Child.xls");
		//開啟工作簿
		HSSFWorkbook wb = new HSSFWorkbook(inputStream);
		//建立Excel提取器(這個只是POIAPI提供的一個文字提取器)
		ExcelExtractor extractor = new ExcelExtractor(wb);
		//是否輸出Sheet頁的名稱
		extractor.setIncludeSheetNames(false); 
		//輸出提取文字
		System.out.println(extractor.getText());
	}
}

 通過以上兩種方法 都可以 進行將文件內容輸出!!! 可以自己寫一個 工具類 進行封裝   就可以實現將資料庫的內容讀取出來 輸出為EXCEL 或者 EXCEl匯入到資料庫
Only丶愛你

相關推薦

POI開發入門Excel 文字提取

Apache POI (四) 遍歷Excel 和文字提取 一、 Excel遍歷 直接上程式碼: package com.poi.hello; import java.io.FileInputStre

CATIA CAA二次開發專題---特徵樹

    在應用開發中,遍歷特徵樹是常見需求,通過遍歷特徵結構樹,可以獲取大量資訊。這裡給出一個遍歷函式,供參考。    函式採用遞迴演算法,從給出的特徵出發,遍歷以該特徵為根的特徵樹,如果根是零部件, 遍歷整個零部件特徵。    適當修改,即可完成特定特徵物件的搜尋。

opencv2—4影象鄰域操作

在影象處理中,對當前位置畫素的相鄰畫素計算新的畫素值是很常見的操作,當鄰域包括影象的前幾行和下幾行時,你就需要同時掃描影象的若干行 本篇介紹的這個例子是對影象進行銳化,它是基於拉普拉斯運算元的。將一幅

JQuery入門JQuery元素

前言       通過前面的瞭解,我們知道了基本的JQuery選擇器,本章學習JQuery的元素遍歷 方法 1.概念 我們瞭解了JQuery的選擇器的相關知識,也清楚了層級選擇器的概念,那麼如果說我們要找很深層的元素物件怎麼辦呢?那麼使用層級選擇器當

API開發實踐 返回HTML

acea 指定 win filename static box 拖動地圖 ive let 分為兩個部分:生成HTML和返回HTML 生成HTML: 最終想要的時顯示地圖,不可避免的使用高德地圖的API。 【地圖API】地址錄入時如何獲得準確的經緯度?淘寶收貨地址詳解 改變幾

學習 MeteoInfo二次開發教程

手動添加 map dem itl 數控 nas 字號 south title 教程四的問題不大。 1.private void AddMapFrame_ChinaSouthSea()、private void AddTitle()兩個函數和public Form1()函數並

Storm入門WordCount示例

etl rri emit lis auto deb turn output -- Storm API文檔網址如下: http://storm.apache.org/releases/current/javadocs/index.html 一、關聯代碼 使用maven,代碼如

Linux入門

fhs man bash特性 文件管理 目錄管理 目錄:一、根文件系統層級標準FHS 二、bash的基礎特性(一) 1.命令歷史 2.命令行補全 3.路徑補全 4.命令行展開 5.命令執行的狀態結果 6.引用 7.快捷鍵 三、目錄管理

Spring Boot 入門微服務之 Config Server 統一配置中心

bootstra pan pat 默認 star default client efault localhost 一、目錄結構 二、pom文件 <!-- 配置服務依賴 --> <dependency> &l

Unreal Engine 4虛幻UE4GameplayAbilities 插件入門教程技能屏蔽簡單的Buff等

網絡 important any time sim sed exe triggers 進入 本節內容繼續上一節教程的內容(如果沒有看過前面的教程,請前往學習),不會講太難的新東西,而是繼續探究技能標簽(Abiilty Tags)的內容。先來一道開胃菜。 第1.1步: 將

做QA的日子——iOS測試入門

版本號 使用 evernote 賬號 每一個 移動 研發 溝通 一個人 坦言,做QA的這半年我沒有成長,就算有成長也非常少,我非常難過。和身邊的人講事實上並沒有誰能真正理解自己的難過,事實上還是自己不夠努力。對自己不夠狠,以前認為自己不夠幸運,想有一個更好的指路人,

Shell入門之數組

定義 col 元素 array 多維 開始 code logs shel 一、一維數組   bash支持一維數組(不支持多維數組),並且沒有限定數組的大小。   類似與C語言,數組元素的下標由0開始編號。 二、定義數組 在Shell中,用括號來表示數組,數組元素用"空格

verilog入門-----表達式

開始 處理 lec parameter spa 方式 param mage ... 表達式有操作數和操作符組成。 操作數 操作數分為:常數、參數、線網、寄存器、位選擇、部分選擇、存儲器單元、函數調用 常數:表達時間中的整數值可被解釋為有符號數或無符號數。如果表達式中是

Spring Boot入門——使用模板FreeMaker

junit boot.s char pack utf put 常見 節點 簡單的 這周主要學習怎麽在Spring Boot中使用模板引擎FreeMaker,主要從以下幾方面進行學習。 (1) freemarker介紹: FreeMarker是一款模板引擎: 即

Spring入門— 整合StrutsHibernate

patch pan area src 選擇 roo 們的 void prototype 一、Spring整合Struts 1. 初步整合 只要在項目裏面體現spring和 strut即可,不做任何的優化。 struts 環境搭建 創建action publ

Swift入門——可選類型Optionals與斷言Assert

nil swift implicit 條件 標註 float sta 出現 完整 可選類型是什麽? 首先看一個問題,Swift中String類型的變量有一個叫做to

Angular開發實踐:組件之間的交互

lec previous call 私有 判斷 處理方法 數組 依然 處理 在Angular應用開發中,組件可以說是隨處可見的。本篇文章將介紹幾種常見的組件通訊場景,也就是讓兩個或多個組件之間交互的方法。 根據數據的傳遞方向,分為父組件向子組件傳遞、子組件向父組件傳遞及通過

Netty入門ByteBuf 字節級別的操作

衍生 方法 容器 遞增 不同之處 影響 wid 使用 ear    Netty 中使用 ByteBuf 代替 Java NIO 提供的 ByteBuffer 作為字節的容器。 一、索引   ByteBuf 提供兩個指針變量支持讀和寫操作,讀操作使用 readerIndex,

Qt與FFmpeg聯合開發指南——編碼2:完善功能基礎封裝

v_op buffer 目前 front from 幀率 inter 博客 int 上一章我用一個demo函數演示了基於Qt的音視頻采集到編碼的完整流程,最後經過測試我們也發現了代碼中存在的問題。本章我們就先處理幾個遺留問題,再對代碼進行完善,最後把編碼功能做基礎封裝。 一

LayIM.AspNetCore Middleware 開發日記主角登場LayIM介紹

融雲 文檔 應該 步驟 end 想要 .sql 味道 asp.net 前言   在前幾篇中已經初步介紹了開發AspNetCore中間件的一些基礎知識,不過都沒有很深入的去研究,後續還是需要去看看源碼。本篇呢,終於有點開頭的味道了,就是要介紹LayIM了,其實標題寫的是主角,