<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Apache POI &#8211; 記下來</title>
	<atom:link href="https://noter.tw/tag/apache-poi/feed/" rel="self" type="application/rss+xml" />
	<link>https://noter.tw</link>
	<description>一路上踩到的坑、遇到的問題，一點一滴記下來，希望能幫助到需要的人~</description>
	<lastBuildDate>Fri, 11 Mar 2022 05:57:15 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.3</generator>

<image>
	<url>https://noter.tw/wp-content/uploads/cropped-old-1130742_1920-1-32x32.jpg</url>
	<title>Apache POI &#8211; 記下來</title>
	<link>https://noter.tw</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Java 寫入 Excel 文件(xls, xlsx) – 使用 Apache POI</title>
		<link>https://noter.tw/6723/java-%e5%af%ab%e5%85%a5-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/</link>
					<comments>https://noter.tw/6723/java-%e5%af%ab%e5%85%a5-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Fri, 29 Nov 2019 05:34:06 +0000</pubDate>
				<category><![CDATA[一般程式]]></category>
		<category><![CDATA[2019]]></category>
		<category><![CDATA[xlsx]]></category>
		<category><![CDATA[Apache POI]]></category>
		<category><![CDATA[讀取 xlsx]]></category>
		<category><![CDATA[寫入 excel]]></category>
		<category><![CDATA[寫入 xls]]></category>
		<category><![CDATA[2020]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[jxl]]></category>
		<category><![CDATA[xls]]></category>
		<guid isPermaLink="false">https://noter.tw/?p=6723</guid>

					<description><![CDATA[<p>之前寫過一篇 Java 讀取 Excel 文件(xls, xlsx) – 使用 Apache POI，記錄用 POI 讀取 Excel 的教學，這篇要補足「寫入」的教學。 小蛙會切割成幾個步驟來講（還&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/6723/java-%e5%af%ab%e5%85%a5-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/" data-wpel-link="internal">Java 寫入 Excel 文件(xls, xlsx) – 使用 Apache POI</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>之前寫過一篇 <a href="https://noter.tw/4300/java-%e8%ae%80%e5%8f%96-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/" data-wpel-link="internal">Java 讀取 Excel 文件(xls, xlsx) – 使用 Apache POI</a>，記錄用 POI 讀取 Excel 的教學，這篇要補足「寫入」的教學。</p>



<span id="more-6723"></span>



<p>小蛙會切割成幾個步驟來講（還沒有下載跟導入 POI 的話，請先看<a href="https://noter.tw/4300/java-%e8%ae%80%e5%8f%96-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/" data-wpel-link="internal">前一篇</a>）</p>



<ul class="my-li bg-darkblue wp-block-list"><li>開啟 Excel：<a href="#exist">讀入既有的</a>、<a href="#new">建立新的</a></li><li><a href="#data">設定儲存格資料</a></li><li><a href="#writeout">寫出 Excel</a></li></ul>



<p>小蛙最近要用到，之前都是這樣子寫，但是後來發現當要寫的資料大到一定程度的時候，這樣的寫法會出問題，所以最後面會加映<a href="#mass">寫出大量資料</a>時候的作法，不過其實也可以直接用最後面的那種做法就好了！</p>



<h2 class="para wp-block-heading" id="exist">開啟 Excel &#8211; 讀入既有的</h2>



<p>程式碼如下，直接看應該不難看懂，多寫 .xls 跟 .xlsx 的判斷，如果自己使用的狀況有固定，就不需要多做這一步驟，直接去建立 xls 對應的 <code>HSSFWorkbook</code> 或 xlsx 對應的 <code>XSSFWorkbook</code>。</p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">// 讀取既有的
String path = "要匯出的檔案 e.g. C:\\測試.xlsx";
Workbook wb = null;
String extString = path.substring(path.lastIndexOf("."));
InputStream is = new FileInputStream(path);
if(".xls".equals(extString)){
   wb = new HSSFWorkbook(is);
}else if(".xlsx".equals(extString)){
   wb = new XSSFWorkbook(is);
}</pre>



<h2 class="para wp-block-heading" id="new">開啟 Excel &#8211; 建立新的</h2>



<p>如果本來沒有這個檔案就要用這段，先直接 new 出對應的 Workbook，在後面的步驟再把 Excel 寫出。</p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">// 開新檔案
String path = "要匯出的檔案 e.g. C:\\測試.xlsx";
Workbook wb = null;
String extString = path.substring(path.lastIndexOf("."));
if(".xls".equals(extString)){
    wb = new HSSFWorkbook();
}else if(".xlsx".equals(extString)){
    wb = new XSSFWorkbook();
}else{
    System.out.println("無效檔案");
    return;
}</pre>



<h2 class="para wp-block-heading" id="data">設定儲存格資料</h2>



<p>POI 對 Excel 的處理脈絡是這樣，先有一個 Workbook，把他看成是一個 Excel，下一層是頁籤 Sheet，再下一層是橫的 Row，最後就是儲存格 Cell，前面的步驟我們建立(取得)了 Workbook，下一步就是要建立 Sheet &gt; Row &gt; Cell，只要記住這個順序很快就可以把自己要寫的資料設定好了，下面的程式碼是把九九乘法表輸出到 Excel 裡。</p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">// 設定儲存格資料
Sheet sheet = wb.createSheet(); 
Row row = null;
Cell cell = null;
for(int r = 0; r &lt; 9; r++){
    row = sheet.createRow(r);
    for(int c = 0; c &lt; 9; c++){
        cell = row.createCell(c);
	cell.setCellValue(
            (c + 1) + " x " + (r + 1) + " = " + ((r + 1) * (c + 1))
        );
    }
}</pre>



<h2 class="writeout wp-block-heading">寫出 Excel</h2>



<p>內容都設置好之後，最後一個步驟就是把這些變動寫到 Excel 檔案上啦！</p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">// 寫出 Excel
try {
    FileOutputStream fos = new FileOutputStream(new File(path));
    wb.write(fos);
    fos.flush();
    fos.close();
} catch (IOException e) {
    e.printStackTrace();
}</pre>



<p>到這邊就結束了！很簡單吧！上面全部組合起來應該就可以動了。</p>



<h2 class="para wp-block-heading" id="mass">處理大量資料</h2>



<p>如果資料量非常大的話，以小蛙的狀況來說要寫的資料量超過 3000 筆的時候，就會一直噴 <code>Exception in thread "main" java.lang.OutOfMemoryError: Java heap space</code> 的錯誤，Google 查了一些資料發現除了上面提到的 <code>HSSFWorkbook</code> 跟 <code>XSSFWorkbook</code> 之外，還有一個叫做 <code>SXSSFWorkbook</code> 的類別。</p>



<p><code>SXSSFWorkbook</code> 的運作方式跟 <code>HSSFWorkbook</code> 及 <code>XSSFWorkbook</code> 不同，<code>SXSSFWorkbook</code> 會先以「暫存檔」的方式寫回硬碟，最後輸出的時候再把他們存回 Excel 裡面，這樣一來就不會出現 Out Of Memory 的問題啦！不過如果內容處理沒弄好也還是會 OOM 就是～附上相關程式碼。</p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">// 大量資料用 SXSSFWorkbook
String path      = "要匯出的檔案 e.g. C:\\測試.xlsx";
// 設定幾筆之後，就先寫到硬碟的暫存檔
SXSSFWorkbook wb = new SXSSFWorkbook(100);
Sheet sheet      = wb.createSheet();
FileOutputStream fileOut = new FileOutputStream(path);	
Row row   = null;
Cell cell = null;
for(int r = 0; r &lt; 9; r++){
    row = sheet.createRow(r);
    for(int c = 0; c &lt; 9; c++){
        cell = row.createCell(c);
        cell.setCellValue(
            (c + 1) + " x " + (r + 1) + " = " + ((r + 1) * (c + 1)));
    }
}
wb.write(fileOut);
fileOut.flush();
fileOut.close();
wb.dispose();</pre>



<p><strong>Excel 相關文章：</strong></p>



<ul class="my-li bg-darkblue wp-block-list"><li><a href="https://noter.tw/9117/excel-filter-and-validation/" data-wpel-link="internal">加入篩選器及下拉選單 (資料驗證)</a></li><li><a href="https://noter.tw/9063/excel-auto-search-and-fill-data-by-vlookup-index-match/" data-wpel-link="internal">搜尋表格 填入資料 強大的 VLOOKUP, INDEX, MATCH</a></li><li><a href="https://noter.tw/9061/split-a-excel-to-files/" data-wpel-link="internal">分拆 Excel 成多個檔案 ( Split A Excel to Files)</a></li><li><a href="https://noter.tw/6550/excel-%e4%bd%bf%e7%94%a8-poi-%e8%ae%80%e5%8f%96%e6%96%87%e5%ad%97%e6%a0%bc%e5%bc%8f%e6%97%a5%e6%9c%9f%e5%8d%bb%e8%ae%8a%e6%88%90%e6%95%b8%e5%ad%97%e7%9a%84%e5%95%8f%e9%a1%8c/" data-wpel-link="internal">Excel 使用 POI 讀取文字格式日期卻變成數字的問題</a></li><li><a href="https://noter.tw/4300/java-%e8%ae%80%e5%8f%96-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/" data-wpel-link="internal">Java 讀取 Excel 文件(xls, xlsx) – 使用 Apache POI</a></li><li><a href="https://noter.tw/2711/oracle-%e5%8c%af%e5%85%a5%e5%8c%af%e5%87%ba-excel-%e9%80%8f%e9%81%8e-sql-developer/" data-wpel-link="internal">Oracle 匯入/匯出 Excel (透過 SQL Developer)</a></li><li><a href="https://noter.tw/1732/jsp%e5%b0%87%e8%b3%87%e6%96%99%e5%8c%af%e5%87%ba%e6%88%90excel%e7%9b%b4%e6%8e%a5%e4%b8%8b%e8%bc%89-by-jexcelapi-jxl/" data-wpel-link="internal">JSP將資料匯出成Excel直接下載 by JExcelApi (jxl)</a></li><li><a href="https://noter.tw/1569/java-excel-jxl/" data-wpel-link="internal">Java + Excel = JXL</a></li><li><a href="https://noter.tw/119/ncr-%e8%99%95%e7%90%86%e6%96%b9%e5%bc%8f%ef%bc%9ajava-vba/" data-wpel-link="internal">NCR &amp;#xxxxx; 處理方式：Java &amp; VBA</a></li></ul>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/6723/java-%e5%af%ab%e5%85%a5-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/" data-wpel-link="internal">Java 寫入 Excel 文件(xls, xlsx) – 使用 Apache POI</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/6723/java-%e5%af%ab%e5%85%a5-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excel 使用 POI 讀取文字格式日期卻變成數字的問題</title>
		<link>https://noter.tw/6550/excel-%e4%bd%bf%e7%94%a8-poi-%e8%ae%80%e5%8f%96%e6%96%87%e5%ad%97%e6%a0%bc%e5%bc%8f%e6%97%a5%e6%9c%9f%e5%8d%bb%e8%ae%8a%e6%88%90%e6%95%b8%e5%ad%97%e7%9a%84%e5%95%8f%e9%a1%8c/</link>
					<comments>https://noter.tw/6550/excel-%e4%bd%bf%e7%94%a8-poi-%e8%ae%80%e5%8f%96%e6%96%87%e5%ad%97%e6%a0%bc%e5%bc%8f%e6%97%a5%e6%9c%9f%e5%8d%bb%e8%ae%8a%e6%88%90%e6%95%b8%e5%ad%97%e7%9a%84%e5%95%8f%e9%a1%8c/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Wed, 20 Nov 2019 06:09:29 +0000</pubDate>
				<category><![CDATA[一般程式]]></category>
		<category><![CDATA[技巧分享]]></category>
		<category><![CDATA[Apache POI]]></category>
		<category><![CDATA[poi]]></category>
		<category><![CDATA[日期格式]]></category>
		<category><![CDATA[文字]]></category>
		<category><![CDATA[自訂]]></category>
		<category><![CDATA[日期轉文字]]></category>
		<category><![CDATA[excel]]></category>
		<guid isPermaLink="false">https://noter.tw/?p=6550</guid>

					<description><![CDATA[<p>之前就有遇過類似的問題了，這次遇到的不太一樣，也用了很奇怪的處理方式，不知道正規怎麼處理，先記錄下來下次再遇到就知道怎麼處理了。 今天小蛙要用 POI 讀取的 Excel 遇到一個日期問題，以往要讀取&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/6550/excel-%e4%bd%bf%e7%94%a8-poi-%e8%ae%80%e5%8f%96%e6%96%87%e5%ad%97%e6%a0%bc%e5%bc%8f%e6%97%a5%e6%9c%9f%e5%8d%bb%e8%ae%8a%e6%88%90%e6%95%b8%e5%ad%97%e7%9a%84%e5%95%8f%e9%a1%8c/" data-wpel-link="internal">Excel 使用 POI 讀取文字格式日期卻變成數字的問題</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>之前就有遇過類似的問題了，這次遇到的不太一樣，也用了很奇怪的處理方式，不知道正規怎麼處理，先記錄下來下次再遇到就知道怎麼處理了。</p>



<span id="more-6550"></span>



<p>今天小蛙要用 <a href="https://noter.tw/4300/java-%e8%ae%80%e5%8f%96-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/" data-wpel-link="internal">POI 讀取</a>的 Excel 遇到一個日期問題，以往要讀取的日期欄位格式大部份是固定的，如果是這種固定的狀況就可以直接用 TEXT 寫定或是讀取進來之後再做轉換，但這次要讀取的欄位裡有各式各樣的內容，因此沒辦法這樣處理。</p>



<h2 class="para wp-block-heading">問題</h2>



<p>如下圖，要讀取的儲存格為「1990-03-17」，但實際內容是上面的 1990/3/17，而格式是「自訂」，所以實際內容是 1990/3/17，指示設定顯示為 1990-03-17，透過 POI 讀出來之後會變成 32949 &#8230;</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/b0ITDAeqTe1lz8vFh02Fsa5ql3IG2mOn1a4IlIzeo96n2YIMuXtnL-IxSYlPhckAXB8IJzHl_eYeTkMoegQfwA24NPGhiN3_IVMIu57sJ-lvpzf49gLlvmU15-qP6ueiacx_2XWV6irSp9Qct90HrPPvEE2IWJKHNmppDEBWTNYAA4im-BSfox-fA8NNWIftFvT1FuIW0WJ9R9zWV6LhNqOneu-4J7JwJt6lKxoJhJ3VTbQDiA_TDFeWrTaRujWGKXEjxQ7XvWJgAs9K8Ts_HCiwGTpCtz2Xf94SPu9h4RYFwqPQOzrr8XEHIMam02394l9_J7WD-3BP7PNqnBr4rdmk7CO5bk6MH5zMyGCjDeGXdJEvt48trk3cutt5p1o8bLXuWpbQe7zNd5X0RfSSsQLik1BWBH3rznnvS94GiBWzkN56RVjz4Fz1BmFjqTYHnTcsUcukBJqsUUJPzTeMBsQXaR0WVUL1tTlnvheIRMedCXvUDRYVY-15DApGxzDfw8PSwDtLtDopJd6ZtGg4OsQnUxzltj1CDtUe7q0-HONSVP6WObeYuo_hATtWGrTecSr4IZTo3Exo2RsYHmkR2P0tDF_7eskunoGbcEeZOlkN0lbA4gM9wysLt13xlUUcSYvNZ8v36YEchajYrUktcsiVbEq32XusC5oGW7DgckbJwHZ7Sx42ghDZ9ImzfbwJHsoNGM5Idr8ygv07MuDjmk8Fa0qK9JSoLEtlf6g7cq5m74lP=w168-h120-no" alt="b0ITDAeqTe1lz8vFh02Fsa5ql3IG2mOn1a4IlIzeo96n2YIMuXtnL IxSYlPhckAXB8IJzHl eYeTkMoegQfwA24NPGhiN3 IVMIu57sJ lvpzf49gLlvmU15 qP6ueiacx 2XWV6irSp9Qct90HrPPvEE2IWJKHNmppDEBWTNYAA4im BSfox fA8NNWIftFvT1FuIW0WJ9R9zWV6LhNqOneu 4J7JwJt6lKxoJhJ3VTbQDiA TDFeWrTaRujWGKXEjxQ7XvWJgAs9K8Ts HCiwGTpCtz2Xf94SPu9h4RYFwqPQOzrr8XEHIMam02394l9 J7WD 3BP7PNqnBr4rdmk7CO5bk6MH5zMyGCjDeGXdJEvt48trk3cutt5p1o8bLXuWpbQe7zNd5X0RfSSsQLik1BWBH3rznnvS94GiBWzkN56RVjz4Fz1BmFjqTYHnTcsUcukBJqsUUJPzTeMBsQXaR0WVUL1tTlnvheIRMedCXvUDRYVY 15DApGxzDfw8PSwDtLtDopJd6ZtGg4OsQnUxzltj1CDtUe7q0 HONSVP6WObeYuo hATtWGrTecSr4IZTo3Exo2RsYHmkR2P0tDF 7eskunoGbcEeZOlkN0lbA4gM9wysLt13xlUUcSYvNZ8v36YEchajYrUktcsiVbEq32XusC5oGW7DgckbJwHZ7Sx42ghDZ9ImzfbwJHsoNGM5Idr8ygv07MuDjmk8Fa0qK9JSoLEtlf6g7cq5m74lP=w168 h120 no Excel 使用 POI 讀取文字格式日期卻變成數字的問題" title="Excel 使用 POI 讀取文字格式日期卻變成數字的問題"></figure></div>



<p>如果把儲存格的格式直接設定成「文字」，然後儲存格就直接變成 32949 了 &#8230; </p>



<h2 class="para wp-block-heading">小蛙處理方式</h2>



<p>如果你的 excel 真的太大，幾百萬幾千萬筆那種，還是看有沒有大大願意幫忙，小蛙這次要處理的只有幾千筆。試過很多做法最後都會變成 32949，先說如果你的儲存格內容很一致，<a rel="noreferrer noopener nofollow external" aria-label="Converting Number representation of Date in excel to Date in java (在新分頁中開啟)" href="https://stackoverflow.com/questions/19028192/converting-number-representation-of-date-in-excel-to-date-in-java" target="_blank" data-wpel-link="external" class="wpel-icon-right">Converting Number representation of Date in excel to Date in java<span class="wpel-icon wpel-image wpel-icon-6"></span></a> 或 <a href="https://www.extendoffice.com/zh-TW/documents/excel/2476-excel-convert-date-to-text-or-number.html" target="_blank" rel="noreferrer noopener nofollow external" aria-label="如何在Excel中將日期轉換為數字字符串或文本格式？  (在新分頁中開啟)" data-wpel-link="external" class="wpel-icon-right">如何在Excel中將日期轉換為數字字符串或文本格式？ <span class="wpel-icon wpel-image wpel-icon-6"></span></a>可能都可以幫上忙，只是看要從程式端處理還是從來源資料端處理。</p>



<p>因為內容不固定，用上面的方式轉出來又會延伸出其他問題，小蛙就想真正要做的事情其實是</p>



<pre class="left green">把所見的文字格式撈出來，而非實際資料
</pre>



<h3 class="para wp-block-heading">複製要處理的日期儲存格，貼上筆記本後再複製</h3>



<p>有時候複製了有格式的東西，要去除這些格式除了用「以純文字方式貼上」之外，還有一個方法就是，先貼去 Windows 內建的筆記本，一定要筆記本喔，有些文字編輯器即使你複製過去再複製出來，格式還是保留著的，Windows 內建最傳統的筆記本不支援格式，因此複製進去就會剩下純文字，再複製出來就只剩下純文字了。</p>



<h3 class="para wp-block-heading">將 excel 要貼上的儲存格設定為「文字」</h3>



<p>如果把上一部複製的資料貼回原本的 excel 儲存格中，還是會跟一開始一樣，要貼回之前先把儲存格設定成「文字」</p>



<h3 class="para wp-block-heading">貼上</h3>



<p>貼上之後再從 POI 讀取就可以讀到真正我們在 excel 中看到的內容了。</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/KFyzURE9MouVkIStM8gJQfC3QVXMlDP7h0t5NoGRMQ-kfqz1bhWfsCuWy-pRYwzF-FP9NeLRx8thinO_FhB9UrRXt0Q_opGixwnAokOk97oqOzl_DdtSwHAm_RgkqMo6W8vqELvPq4olCIQg_I7F0vkumOiSleImQzfYg4M9f1Im5d1Lza8tAcF5RVMFxoCloB3G76wLPL-p38eSnUnT-fnzHn-64k8Zv71FYYeKl5MjjVNpwComjuuF7k4m9o0jm56TywX4Hls_74nCNqu84o1TtLJ8yY8E-V3_VWKABFxNiX2r4N6aEhfc2mId4I3aOsmQsn5qQ-x-q54BIOnYLsvhya_0Sz1K8YpdNZGHySYfIDocAs9kwD50u9bsdxkNFIup-A_x_Pqz17OKiQZbSuH4RfcBkSadw-1vEXSIhdARYZkDI3RgxYCIigeO44GKrBkbAp9nrhfX8mLuDCaBv6rMEx_kHE70AHSiD851DcScsh0i0yy329E8MNNRSKSHQjZFxHJlqyV55eebW0LPwX_GG3WSWszsvNs2Zz3zXJvWAuu0lR58kaojxSDhnmA-2MKgimTessdIowOZqzUXlpw0AAweT_muKgFvlbsAh2IHR6jqrgW_JUulD-7mUoS8Lkv7UFVCI-usF14xrloOYL3zM2UQ2630yIVV4nAvHuEWhIS6tNiyj3K4YN8ANzgtboDsayIKLwwlHDxYW7Zqg0y1vJ0mIhrfB5jJh8J9-fqbQd7P=w557-h281-no" alt="KFyzURE9MouVkIStM8gJQfC3QVXMlDP7h0t5NoGRMQ kfqz1bhWfsCuWy pRYwzF FP9NeLRx8thinO FhB9UrRXt0Q opGixwnAokOk97oqOzl DdtSwHAm RgkqMo6W8vqELvPq4olCIQg I7F0vkumOiSleImQzfYg4M9f1Im5d1Lza8tAcF5RVMFxoCloB3G76wLPL p38eSnUnT fnzHn 64k8Zv71FYYeKl5MjjVNpwComjuuF7k4m9o0jm56TywX4Hls 74nCNqu84o1TtLJ8yY8E V3 VWKABFxNiX2r4N6aEhfc2mId4I3aOsmQsn5qQ x q54BIOnYLsvhya 0Sz1K8YpdNZGHySYfIDocAs9kwD50u9bsdxkNFIup A x Pqz17OKiQZbSuH4RfcBkSadw 1vEXSIhdARYZkDI3RgxYCIigeO44GKrBkbAp9nrhfX8mLuDCaBv6rMEx kHE70AHSiD851DcScsh0i0yy329E8MNNRSKSHQjZFxHJlqyV55eebW0LPwX GG3WSWszsvNs2Zz3zXJvWAuu0lR58kaojxSDhnmA 2MKgimTessdIowOZqzUXlpw0AAweT muKgFvlbsAh2IHR6jqrgW JUulD 7mUoS8Lkv7UFVCI usF14xrloOYL3zM2UQ2630yIVV4nAvHuEWhIS6tNiyj3K4YN8ANzgtboDsayIKLwwlHDxYW7Zqg0y1vJ0mIhrfB5jJh8J9 fqbQd7P=w557 h281 no Excel 使用 POI 讀取文字格式日期卻變成數字的問題" title="Excel 使用 POI 讀取文字格式日期卻變成數字的問題"><figcaption>原本 excel 自動補成「自訂」</figcaption></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/AJzrjXk1aETjwQgrLgByKaUgVnjmige5rbiafsD5i6rwvk9yuKNKPtdhcLQmU9T-DiKdlen4h4md0ZQh79jo_bVIgWvwkhhpHRTTPecOv5z3-IreTrI1lkRtxDU_v5gpzS6QdVe6H43FxKMWaV9Wk0lc4_lap6lURlyu_GRDUK58ZPOeX10He96HrrIphSsYKWnqAZC6hf11f-rdqkCj7sFxqzgJOi8DX6RbqaWmQf1L3JA_Xg8O-cDkJfAa-xQKo1M1XQmLlpajZfcMNYkSUOMqlfIun5InY0N3BxCQQJbbVMAsoU2iHUAhb2rqHYLLeC9MDGEuAEHHHVPXlL_AG4s2ibKfUZZfF5O5g9ZgL3LqViWZ-awp7XtQj1ebywviRwgG6EMPz1hBlNfY1xnnP-shswL90v2Vrn7TboV84W8-4w5NcdR_Tpc-sXlpNgM6XAEV5HZ0oS4C2lWAnpNZyTexOLG3K2YqGd6_t2nSfhd1eRD5Df4bXrCxh5AE08xZ0ptYSTeadQ9b6mgF1ERz6R4rWH2V9XY5-yT6l9plzdsAlwrogHjWeJBsHFwceM4lHZ6e409IyU0GIqUVHUPWT_b5jaolIwlv_QMhvbA0mNzpCx6BnEAEDgnCQfD2LQ9C-OHptVGvLB7HZ5J7LK6PdNWbEBFvZD76qtjfmfq08i2yfdSum02c3Fuhp0gWaGtl4NT-9QDyQe9RUI6utN4fPOdVijhOhG8yudP7XcbaKHz7lYGC=w560-h346-no" alt="AJzrjXk1aETjwQgrLgByKaUgVnjmige5rbiafsD5i6rwvk9yuKNKPtdhcLQmU9T DiKdlen4h4md0ZQh79jo bVIgWvwkhhpHRTTPecOv5z3 IreTrI1lkRtxDU v5gpzS6QdVe6H43FxKMWaV9Wk0lc4 lap6lURlyu GRDUK58ZPOeX10He96HrrIphSsYKWnqAZC6hf11f rdqkCj7sFxqzgJOi8DX6RbqaWmQf1L3JA Xg8O cDkJfAa xQKo1M1XQmLlpajZfcMNYkSUOMqlfIun5InY0N3BxCQQJbbVMAsoU2iHUAhb2rqHYLLeC9MDGEuAEHHHVPXlL AG4s2ibKfUZZfF5O5g9ZgL3LqViWZ awp7XtQj1ebywviRwgG6EMPz1hBlNfY1xnnP shswL90v2Vrn7TboV84W8 4w5NcdR Tpc sXlpNgM6XAEV5HZ0oS4C2lWAnpNZyTexOLG3K2YqGd6 t2nSfhd1eRD5Df4bXrCxh5AE08xZ0ptYSTeadQ9b6mgF1ERz6R4rWH2V9XY5 yT6l9plzdsAlwrogHjWeJBsHFwceM4lHZ6e409IyU0GIqUVHUPWT b5jaolIwlv QMhvbA0mNzpCx6BnEAEDgnCQfD2LQ9C OHptVGvLB7HZ5J7LK6PdNWbEBFvZD76qtjfmfq08i2yfdSum02c3Fuhp0gWaGtl4NT 9QDyQe9RUI6utN4fPOdVijhOhG8yudP7XcbaKHz7lYGC=w560 h346 no Excel 使用 POI 讀取文字格式日期卻變成數字的問題" title="Excel 使用 POI 讀取文字格式日期卻變成數字的問題"><figcaption>處理完之後的，是「文字」而且沒有被轉成 32949</figcaption></figure></div>



<p>如果有更正規或更好的方法的大大，歡迎留言給小蛙，感恩！</p>



<p><strong>Excel 相關文章：</strong></p>



<ul class="my-li bg-darkblue wp-block-list"><li><a href="https://noter.tw/9117/excel-filter-and-validation/" data-wpel-link="internal">加入篩選器及下拉選單 (資料驗證)</a></li><li><a href="https://noter.tw/9063/excel-auto-search-and-fill-data-by-vlookup-index-match/" data-wpel-link="internal">搜尋表格 填入資料 強大的 VLOOKUP, INDEX, MATCH</a></li><li><a href="https://noter.tw/9061/split-a-excel-to-files/" data-wpel-link="internal">分拆 Excel 成多個檔案 ( Split A Excel to Files)</a></li><li><a href="https://noter.tw/6550/excel-%e4%bd%bf%e7%94%a8-poi-%e8%ae%80%e5%8f%96%e6%96%87%e5%ad%97%e6%a0%bc%e5%bc%8f%e6%97%a5%e6%9c%9f%e5%8d%bb%e8%ae%8a%e6%88%90%e6%95%b8%e5%ad%97%e7%9a%84%e5%95%8f%e9%a1%8c/" data-wpel-link="internal">Excel 使用 POI 讀取文字格式日期卻變成數字的問題</a></li><li><a href="https://noter.tw/4300/java-%e8%ae%80%e5%8f%96-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/" data-wpel-link="internal">Java 讀取 Excel 文件(xls, xlsx) – 使用 Apache POI</a></li><li><a href="https://noter.tw/2711/oracle-%e5%8c%af%e5%85%a5%e5%8c%af%e5%87%ba-excel-%e9%80%8f%e9%81%8e-sql-developer/" data-wpel-link="internal">Oracle 匯入/匯出 Excel (透過 SQL Developer)</a></li><li><a href="https://noter.tw/1732/jsp%e5%b0%87%e8%b3%87%e6%96%99%e5%8c%af%e5%87%ba%e6%88%90excel%e7%9b%b4%e6%8e%a5%e4%b8%8b%e8%bc%89-by-jexcelapi-jxl/" data-wpel-link="internal">JSP將資料匯出成Excel直接下載 by JExcelApi (jxl)</a></li><li><a href="https://noter.tw/1569/java-excel-jxl/" data-wpel-link="internal">Java + Excel = JXL</a></li><li><a href="https://noter.tw/119/ncr-%e8%99%95%e7%90%86%e6%96%b9%e5%bc%8f%ef%bc%9ajava-vba/" data-wpel-link="internal">NCR &amp;#xxxxx; 處理方式：Java &amp; VBA</a></li></ul>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/6550/excel-%e4%bd%bf%e7%94%a8-poi-%e8%ae%80%e5%8f%96%e6%96%87%e5%ad%97%e6%a0%bc%e5%bc%8f%e6%97%a5%e6%9c%9f%e5%8d%bb%e8%ae%8a%e6%88%90%e6%95%b8%e5%ad%97%e7%9a%84%e5%95%8f%e9%a1%8c/" data-wpel-link="internal">Excel 使用 POI 讀取文字格式日期卻變成數字的問題</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/6550/excel-%e4%bd%bf%e7%94%a8-poi-%e8%ae%80%e5%8f%96%e6%96%87%e5%ad%97%e6%a0%bc%e5%bc%8f%e6%97%a5%e6%9c%9f%e5%8d%bb%e8%ae%8a%e6%88%90%e6%95%b8%e5%ad%97%e7%9a%84%e5%95%8f%e9%a1%8c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Java 讀取 Excel 文件(xls, xlsx) &#8211; 使用 Apache POI</title>
		<link>https://noter.tw/4300/java-%e8%ae%80%e5%8f%96-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/</link>
					<comments>https://noter.tw/4300/java-%e8%ae%80%e5%8f%96-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Sun, 01 Sep 2019 14:08:37 +0000</pubDate>
				<category><![CDATA[一般程式]]></category>
		<category><![CDATA[jxl]]></category>
		<category><![CDATA[xls]]></category>
		<category><![CDATA[2019]]></category>
		<category><![CDATA[xlsx]]></category>
		<category><![CDATA[Apache POI]]></category>
		<category><![CDATA[讀取 excel]]></category>
		<category><![CDATA[讀取 xls]]></category>
		<category><![CDATA[讀取 xlsx]]></category>
		<category><![CDATA[excel]]></category>
		<guid isPermaLink="false">https://noter.tw/?p=4300</guid>

					<description><![CDATA[<p>小蛙很久很久以前發過一篇 Java + Excel = JXL，主要講解怎麼用 Java 處理 Excel，當時使用的是 jxl 這個套件，不過這個套件有一個很大的問題，就是只能處理 xls 的檔案，&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/4300/java-%e8%ae%80%e5%8f%96-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/" data-wpel-link="internal">Java 讀取 Excel 文件(xls, xlsx) &#8211; 使用 Apache POI</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>小蛙很久很久以前發過一篇 <a href="https://noter.tw/1569/java-excel-jxl/" data-wpel-link="internal">Java + Excel = JXL</a>，主要講解怎麼用 Java 處理 Excel，當時使用的是 jxl 這個套件，不過這個套件有一個很大的問題，就是只能處理 xls 的檔案，xlsx 沒有辦法處理，這篇要介紹的 Apache POI 則可以用來處理 xls 跟 xlsx。</p>



<span id="more-4300"></span>



<h2 class="para wp-block-heading">使用套件</h2>



<p>小蛙這邊說明自己下載 jar 的方式，首先到這邊下載 Apache POI，下載回來解壓縮之後，會得到一堆 jar，最簡單最簡單就是先把下面這些 jar 通通引入</p>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://lh3.googleusercontent.com/WRuQRobKQHsBNDNGAu-ZQAPuFxdxMafOhWD24n5RRGr8Rleyevn7uBeNq_V0hiv2S7a_x0Ep3rLAzcTUoVK2aMzWHIpedbNVtCc_8n_X2Xn6fWAitA2vgpLLGF7Eagd9LQLFJ0mS13_3P8iCkWis6jZYUEwqmoUtlxOWTFpPhMlD84paCnn0MqdNaJOIvJETCySq9jHmK00L70TurnGhEXL1xBWXDJtgzaVWBpHqCaAW4CWmqs4C6rjfx409vYqrWrsbLNU5pJhZVk0_GyQJF1IG_JVeJ9nbV4GHX22fWY-2xRZngywqKBxpOl5be6uHnSAUMaYH0k3PSvPuMguKR86XaZS6E5r4AY5exf6TfhnTV3SMOgqfBJJpEdciSjPpUL8YbHmubVOJRRXjt7MSYDinLjjlwp953vNuW4s4zeDAzD4hqYw-IhJvniAfSTf2T2dqiEyFBXfFEE3BrlPBLeTFUsArgN2PEpTu30DZeBdLbEmzHVSJBn0INxd7B73Mmhhxa_IR3SSqKS-gM0zd_HsEWNwdrWSNF34yHJh0Yw9b89h_LqA-YBuUDGEfVqlvrFuDVu8-TqEOC8ANNKxllJSm0gJM8vEwQnhHRKdmL3GfI5L3LNClcJE7MkZmCCrNxk2ZmPWPV2pDdtBfRCg4WKsg-8HhEbkFbYtFUdQoislhgWDaphAIg5p9ewVldyfLh3rdpE0Yar9rHKbtIyBGcj6m3bT-hg3jz8_OzedgEyfRDimy=w401-h282-no" alt="WRuQRobKQHsBNDNGAu ZQAPuFxdxMafOhWD24n5RRGr8Rleyevn7uBeNq V0hiv2S7a x0Ep3rLAzcTUoVK2aMzWHIpedbNVtCc 8n X2Xn6fWAitA2vgpLLGF7Eagd9LQLFJ0mS13 3P8iCkWis6jZYUEwqmoUtlxOWTFpPhMlD84paCnn0MqdNaJOIvJETCySq9jHmK00L70TurnGhEXL1xBWXDJtgzaVWBpHqCaAW4CWmqs4C6rjfx409vYqrWrsbLNU5pJhZVk0 GyQJF1IG JVeJ9nbV4GHX22fWY 2xRZngywqKBxpOl5be6uHnSAUMaYH0k3PSvPuMguKR86XaZS6E5r4AY5exf6TfhnTV3SMOgqfBJJpEdciSjPpUL8YbHmubVOJRRXjt7MSYDinLjjlwp953vNuW4s4zeDAzD4hqYw IhJvniAfSTf2T2dqiEyFBXfFEE3BrlPBLeTFUsArgN2PEpTu30DZeBdLbEmzHVSJBn0INxd7B73Mmhhxa IR3SSqKS gM0zd HsEWNwdrWSNF34yHJh0Yw9b89h LqA YBuUDGEfVqlvrFuDVu8 TqEOC8ANNKxllJSm0gJM8vEwQnhHRKdmL3GfI5L3LNClcJE7MkZmCCrNxk2ZmPWPV2pDdtBfRCg4WKsg 8HhEbkFbYtFUdQoislhgWDaphAIg5p9ewVldyfLh3rdpE0Yar9rHKbtIyBGcj6m3bT hg3jz8 OzedgEyfRDimy=w401 h282 no Java 讀取 Excel 文件(xls, xlsx) - 使用 Apache POI" title="Java 讀取 Excel 文件(xls, xlsx) - 使用 Apache POI"></figure></div>



<p>通通引入之後，小蛙放上參考網路上資料後，改成自己適用的功能片段，主要作法是先讀取 Excel 裡的所有資料丟到 List&lt;List&lt;String&gt;&gt; 裡面，再透過操作 List&lt;List&lt;String&gt;&gt; 的資料達到目的，當然也可以改成最直觀的方式，直接讀取特定欄位直接做處理。（不一定要用這種全部讀出來再去處理的方式，也可以直接一格一格讀出來處理），下面只是列出一些 function，把它改成自己需要的方式就可以了。</p>



<p>操作流程大概是這樣 </p>



<ul class="wp-block-list"><li><a href="#read">讀取 xls / xlsx 檔案</a></li><li><a href="#sheet">讀取 sheet</a></li><li><a href="#rowcol">遍尋 rows（橫的）遍尋 columns（直的）</a></li><li><a href="#conv">讀取儲存格資料並根據類型做轉換</a></li></ul>



<h3 class="para wp-block-heading" id="read">讀取 xls / xlsx 檔案</h3>



<p>第一步就是讀取 excel 檔案，這邊多做了一件事情就是區分出 xls 跟 xlsx，用一個 if 判斷是分別 new 出 HSSFWorkbook / XSSFWorkbook 物件。</p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">// 從路徑中讀取 Excel
default Workbook getWorkbook(String path) throws FileNotFoundException, IOException {
	Workbook wb = null;
	if(path == null) return null;
	String extString = path.substring(path.lastIndexOf("."));
	InputStream is = new FileInputStream(path);
	if(XLS.equals(extString)){
	    wb = new HSSFWorkbook(is);
	}else if(XLSX.equals(extString)){
	    wb = new XSSFWorkbook(is);
	}
	return wb;
}</pre>



<h3 class="para wp-block-heading" id="sheet">讀取 sheet</h3>



<p>從上面取得的 workbook 中，讀取特定頁籤，這個 sheetNo 從 0 開始計算，也就是說第一個頁籤的話要傳入 0，第二個頁籤傳入 1，以此類推。</p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">// 讀取要用的 Sheet
default Sheet getSheet(Workbook workbook, int sheetNo){
	return workbook.getSheetAt(sheetNo);
}</pre>



<h3 class="para wp-block-heading" id="rowcol">遍尋 rows（橫的）遍尋 columns（直的）</h3>



<p>這邊跟 jxl 比較不同的地方在於，必須先把 row 取出來，然後取得最後一個 row 跟最後一個 column，要注意的是取得 colnum 的時候，要先判斷取出的 row 是不是 null，不然會噴錯喔！（小蛙這邊懶得改了，自己要記得加上判斷喔），以及 index 都是從 0 開始計算，然後每一格儲存格取出的資料都放在 List&lt;List&lt;String&gt;&gt;。中間 readCell 部份內容請往下看。</p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">// 把所有欄位讀出成 List&lt;List&lt;String&gt;&gt;
default List&lt;List&lt;String&gt;&gt; readFields(Workbook workbook, int sheetNo, int firstRow, int firstCol) throws Exception {
	Sheet sheet = workbook.getSheetAt(sheetNo);
	Row row = sheet.getRow(0); 
	int rownum = sheet.getPhysicalNumberOfRows();
	int colnum = row.getPhysicalNumberOfCells();
	List&lt;List&lt;String&gt;&gt; list = new ArrayList&lt;&gt;();
	List&lt;String&gt; _inner;
	for(int i = firstRow; i &lt; rownum; i++){
		row = sheet.getRow(i);
		 _inner = new ArrayList&lt;&gt;();
		if(row != null){
			for(int j = firstCol; j &lt; colnum; j++){
				_inner.add(readCell(row.getCell(j)));
			}
			list.add(_inner);
		}else{
			break;
		}
	}
	return list;
}</pre>



<h3 class="para wp-block-heading" id="conv">轉換型態</h3>



<p>跟 jxl 不一樣的部份是，jxl 可以直接取得字串型態的資料，但是 poi 必須根據不同的形態來呼叫不同的方法取得內容，下面是參考網路上看到的程式碼做的修改，原始來源不太記得了，大致上符合小蛙的需求，可以直接複製回去，再依自己的需求修改。</p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">// 小蛙自己要吐出的格式
default String readCell(Cell cell){
	return (String) getCellFormatValue(cell);
}
default Object getCellFormatValue(Cell cell){
	Object cellValue = null;
        if(cell!=null){
            switch(cell.getCellType()){
	            case NUMERIC:
	            	cellValue 	= df.format(cell.getNumericCellValue());  
	                break;
	            case FORMULA:
	                if(DateUtil.isCellDateFormatted(cell)){
	                    cellValue = cell.getDateCellValue();
	                }else{
	                    cellValue = String.valueOf(cell.getNumericCellValue());
	                }
	                break;
	            case STRING:
	                cellValue = cell.getRichStringCellValue().getString();
	                break;
	            default:
	                cellValue = "";
            }
	    }else{
            cellValue = "";
        }
	return cellValue;
}</pre>



<p>打完收工，把這些 code 改成自己需求之後組合起來應該就可以順利動囉！</p>



<p><strong>Excel 相關文章：</strong></p>



<ul class="my-li bg-darkblue wp-block-list"><li><a href="https://noter.tw/9117/excel-filter-and-validation/" data-wpel-link="internal">加入篩選器及下拉選單 (資料驗證)</a></li><li><a href="https://noter.tw/9063/excel-auto-search-and-fill-data-by-vlookup-index-match/" data-wpel-link="internal">搜尋表格 填入資料 強大的 VLOOKUP, INDEX, MATCH</a></li><li><a href="https://noter.tw/9061/split-a-excel-to-files/" data-wpel-link="internal">分拆 Excel 成多個檔案 ( Split A Excel to Files)</a></li><li><a href="https://noter.tw/6550/excel-%e4%bd%bf%e7%94%a8-poi-%e8%ae%80%e5%8f%96%e6%96%87%e5%ad%97%e6%a0%bc%e5%bc%8f%e6%97%a5%e6%9c%9f%e5%8d%bb%e8%ae%8a%e6%88%90%e6%95%b8%e5%ad%97%e7%9a%84%e5%95%8f%e9%a1%8c/" data-wpel-link="internal">Excel 使用 POI 讀取文字格式日期卻變成數字的問題</a></li><li><a href="https://noter.tw/4300/java-%e8%ae%80%e5%8f%96-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/" data-wpel-link="internal">Java 讀取 Excel 文件(xls, xlsx) – 使用 Apache POI</a></li><li><a href="https://noter.tw/2711/oracle-%e5%8c%af%e5%85%a5%e5%8c%af%e5%87%ba-excel-%e9%80%8f%e9%81%8e-sql-developer/" data-wpel-link="internal">Oracle 匯入/匯出 Excel (透過 SQL Developer)</a></li><li><a href="https://noter.tw/1732/jsp%e5%b0%87%e8%b3%87%e6%96%99%e5%8c%af%e5%87%ba%e6%88%90excel%e7%9b%b4%e6%8e%a5%e4%b8%8b%e8%bc%89-by-jexcelapi-jxl/" data-wpel-link="internal">JSP將資料匯出成Excel直接下載 by JExcelApi (jxl)</a></li><li><a href="https://noter.tw/1569/java-excel-jxl/" data-wpel-link="internal">Java + Excel = JXL</a></li><li><a href="https://noter.tw/119/ncr-%e8%99%95%e7%90%86%e6%96%b9%e5%bc%8f%ef%bc%9ajava-vba/" data-wpel-link="internal">NCR &amp;#xxxxx; 處理方式：Java &amp; VBA</a></li></ul>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/4300/java-%e8%ae%80%e5%8f%96-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/" data-wpel-link="internal">Java 讀取 Excel 文件(xls, xlsx) &#8211; 使用 Apache POI</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/4300/java-%e8%ae%80%e5%8f%96-excel-%e6%96%87%e4%bb%b6xls-xlsx-%e4%bd%bf%e7%94%a8-apache-poi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
