Java讀取Excel並解析文字(並格式化輸出)
說明
最近在做一個比較小型的網站,需要批量匯入註冊使用者.使用者的資訊寫在一張excel表格裡面.
所以就需要讀取excel.所以就記錄下遇到的問題,以及以後檢視.
相關技術
使用的POI解析Excel需要使用的jar包
注(使用的maven.我就添加了右邊的兩個依賴就可以了)
分析
解析Excel首先就要解析Excel的結構.然後用面向物件的思想分析一下
這是一個excel檔案.下面我們就來分析一下如果讓你寫這個poi框架,那麼你會怎麼設計.
1. 首先要有一個物件表示這整個Excel檔案.
2. 可是這個excel檔案中有好多頁.Sheet1, Sheet2等等,所以我們還需要一個物件表示頁.
3. 在頁中,有行,所以還需要一個物件表示行.
4. 在行中,最後細分到格cell.
5. 格cell中資料還有好多型別.有字串,數字,時間等等.
POI中的物件與excel物件的對應
excel檔案就有多種型別了.字尾有 xls 與 xlsx
所以對於不同型別的檔案,就需要使用不同的poi中的物件了.
1. 如果你要解析的是xls檔案
從程式碼不難發現,這裡的處理邏輯是
1>. 先用inputstream獲取excel檔案的io流
2>. 然後建立一個記憶體中的excel檔案HSSFWorkbook型別物件.這個物件表示了整個excel檔案.
3>. 對這個excel檔案的每頁做迴圈處理
4>. 對每頁中的每行做迴圈處理.
5>. 對每行中的每個單元格做做處理,獲取這個單元格的值.
6>. 把這行的結果新增到一個List陣列中.
7>. 把每行的結果新增到最後的總結果中.
8>. 解析完以後就獲取了一個List< List < String > > 型別的物件了.
2. 如果你要處理xlsx型別的檔案則
和上面一樣,我就不說了.
存在的問題
其實有時候我們希望得到的資料就是excel中的資料,可是最後發現結果不理想
如果你的excel中的資料是數字,你會發現java中對應的變成了科學計數法的.
所以在獲取值的時候就要做一些特殊處理.
這樣就能保證獲取的值是我想要的值.
網上的做法是對於數值型別的資料格式化,獲取自己想要的結果.
其實也沒有那麼麻煩.我在做的時候突然想到了一種處理解決方案.供參考
我們看一下poi中對於的toString()方法
該方法是poi的方法,從原始碼中我們可以發現,該處理流程是
1. 獲取單元格的型別
2. 根據型別格式化資料並輸出.這不一下子就造成了很多不是我們想要的.
所以我們就要改造一下這個方法例如這樣
我的做法是這樣的
1. 對於不熟悉的型別,或者為空則返回”” 控制串.
2.如果是數字,則修改單元格型別為String,然後返回String.這樣就保證數字不被格式化了.
3. 雖然不知道這麼做有什麼後果,可是成功了.
相關推薦
Java讀取Excel並解析文字(並格式化輸出)
說明 最近在做一個比較小型的網站,需要批量匯入註冊使用者.使用者的資訊寫在一張excel表格裡面. 所以就需要讀取excel.所以就記錄下遇到的問題,以及以後檢視. 相關技術
java讀取excel檔案內容,並將讀取到的內容寫入到另一檔案中
需要匯入的jar包下載地址https://pan.baidu.com/s/16cTpUfx0KvKkbGYkXAUKMA 程式碼:ReadExcel.java //信1605-3 20163432 張運濤 package domain; import java.io.File; im
java讀取excel表格並格式化輸出
首先是需要poi jar包 import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.userm
java讀取excel文件內容,並將讀取到的內容寫入到另一文件中
dom tst trace 一個 讀取excel domain ble write 做出 需要導入的jar包下載地址https://pan.baidu.com/s/16cTpUfx0KvKkbGYkXAUKMA 代碼:ReadExcel.java //信1605-3 2
java讀取excel 檔案,並把讀取到的資料轉換成javabean物件
javaBean物件public class AcademicaChievements { private Integer aid; private String number; private String sname; private String award_
python讀取excel指定列資料並寫入到新的excel
#encoding=utf-8 import xlrd from xlwt import * #------------------讀資料-------------------------------
Java讀取Excel表格以及讀取數字列轉為文字的解決辦法
Java讀取Excel表格程式碼和把數字列轉為文字的解決辦法。 所需 jar 包:dom4j-1.6.1.jar ,poi-3.8-20120326.jar,poi-ooxml-3.8-20120326.jar,poi-ooxml-schemas-3.8-20120326.
java 讀取資料庫圖片二進位制流並輸出到jsp頁面
最近剛好遇到這個問題,剛開始在網上各種搜尋,看到大量有關該問題的博文。 大量文章有些不敢苟同,希望博主們要寫就認真寫,請不要浪費其他需要幫助的人的時間去驗證你的博文是否正確。 正文如下: 流程說明: 頁面點選某條資訊---》獲取id號---》傳人後臺進行條件查詢----》獲
C#讀取Excel表格中資料並返回datatable
在軟體開發的過程中,經常用到從excel表格中讀取資料作為資料來源,以下整理了一個有效的讀取excel表格的方法。 DataTable GetDataTable(string tableName,string leftTopCel,string rightbutCel)
【Python】pandas遍歷讀取excel檔案,修改並儲存(一)
code ide and lib version: python 2.7(64) pycharm 2018.1.4 xlrd 1.1.0 pandas 0.23.1 play:
java讀取word中的表格並存入到mysql資料庫中例項
將D://word_export.doc(word2003)檔案中表格資料讀取出來並存入到資料庫中。表格資料如下圖所示: 20064001 劉景玉 1987-01-25 男 河南商丘 20064002 李會 1986-05-30 男
java獲取excel中資料,並轉化為JSON格式
java通過poi讀取execl檔案,並且將其中的map格式和陣列格式的字串,轉化為相應的資料型別。 引入poi庫 讀取execl資料,轉化為json字串 將其中的map格式和陣列格式的字串,轉化為相應的資料型別 引入poi庫: <depen
java讀取excel獲取數據寫入到另外一個excel
string stat arr final user tostring enc ++ cef pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.a
java讀取Excel表格中的數據
bubuko str 需求 equal read sta alt 表格 nbsp 1、需求 用java代碼讀取hello.xls表格中的數據 2、hello.xls表格 3、java代碼 package com.test; import java.io.File;
java讀取excel文件數據導入mysql數據庫
l數據庫 ktr static null AD 第二周 pen 不支持 ace 這是我來公司的第二周的一個小學習任務,下面是實現過程: 1.建立maven工程(方便管理jar包) 在pom.xml導入 jxl,mysql-connector 依賴 可以在maven
Java讀取excel數據保存入庫
number date類型 put ase cep throws user workbook urn Java開發讀取excel表格數據入庫保存: List<Map<String, Object>> list = null; String fileP
第四篇:java讀取Excel簡單模板
場景:對於經常需要匯入Excel模板或資料來解析後加以應用的,使用頻率非常之高,做了一個比較穩定的版本,體現在這些地方工具:org.apache.poi使用前必須瞭解這些:1、要解析,那肯定先判斷是不是Excel2、xls字尾的Excel,是03版及以前的用HSSFWorkbook類 &
【Python筆記】操作讀取Excel檔案、文字檔案
需求:讀取Excel檔案、替換文字檔案中得指定某個字串並生成新的檔案 原始碼: #encoding:utf-8 # -*- coding: utf-8 -*- #!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2 #Author:
Java讀取Excel日期格式
//獲取單元格內容 private String getCellValue(HSSFCell cell) { if(cell == null){ return null; } String cellValue = ""; DecimalFormat df = new Deci
java讀取Excel資料
Java讀取Excel中的資料 一 下載匯入java.jxl.jar 二 新建一個Excel表格並且在裡面有內容(記得另存為97-2003版本,否則會出現 Unable to recognize OLE stream 異常) 三 編輯程式碼如下 如果有什麼寫的