讀取Excel文件

最近有個需求需要在app內(nèi)置數(shù)據(jù),新來的產(chǎn)品扔給了我兩個Excel表格就不管了(兩個表格格式還不統(tǒng)一。。怜浅。),于是通過度娘等方法找到了Android中讀取Excel表格文件的一種方法蔬崩,記錄一下恶座。

閑話一下Excel中工作簿和工作表的區(qū)別:

工作簿中包含有工作表。工作簿可以由一張或多張工作表組成沥阳,一個工作簿就是一個EXCEL表格文件跨琳。

好了,開始讀取表格文件吧桐罕。

前提

首先脉让,我們假設(shè)需要讀取的表格文件名字為test.xls, 位于assets根目錄下。

所需Jar包

這里為了能讀取到Excel表格文件功炮,我們要添加一個第三方Jar包jxl溅潜。

這里有點兒需要注意的地方:由于表格文件格式較多,老版本的jxl后只支持Excel2003版本的薪伏,所以如果拿到的表格文件格式是xlsm或者xlsn之類的滚澜,我們首先要把文件另存為xls格式。

開始讀取

1.初始化變量:

InputStream inputStream = null;//輸入流
FileOutputStream outputStream = null;//輸出流 
Workbook book = null;//Excel工作簿對象

2.以流的方式讀取我們內(nèi)置在assets目錄下的表格文件

inputStream = context.getAssets().open("test.xls");

3.將上一步的輸入流讀取成一個文件嫁怀,方便后續(xù)使用

File tempFile = new File(context.getCacheDir(), "test.xls");//臨時文件博秫,第二個參數(shù)為文件名字潦牛,可隨便取
outputStream = new FileOutputStream(tempFile);
byte[] buf = new byte[1024];
int len;
while ((len = inputStream.read(buf)) > 0) {//while循環(huán)進行讀取
outputStream.write(buf, 0, len);
}
outputStream.close();
inputStream.close();

4.得到Excel文件對象后,就可以利用jxl包中提供的各種方法來操作表格文件挡育。jxl提供的方法很多,這里簡單介紹下項目中用到的幾個朴爬。

book = Workbook .getWorkbook(tempFile);//用讀取到的表格文件來實例化工作簿對象(符合常理即寒,我們所希望操作的就是Excel工作簿文件)
Sheet[] sheets = book.getSheets(); //得到所有的工作表
for (int m = 0; m < sheets.length; m++) {
Sheet sheet = book.getSheet(m);
int Rows = sheet.getRows();//得到當前工作表的行數(shù)
int Cols = sheet.getColumns(); //得到當前工作表的列數(shù)
for (int i = 0; i < Cols; i++) {    // 注意:這里是按列讀取的!U儇母赵!
for (int j = 0; j < Rows; j++) {
              String content=sheet.getCell(i, j).getContents();//結(jié)果是String類型的具滴,根據(jù)具體需求進行類型轉(zhuǎn)換
         }
    }
}

總結(jié)

如果表格文件是內(nèi)置在assets目錄下的話凹嘲,按照以上流程讀取即可,如果是在sd卡之類的話构韵,步驟基本一致周蹭,都是首先得到我們的表格文件,然后得到工作簿對象疲恢,對其進行操作凶朗。有需要jxl包的朋友可自行度娘下載,也可以私信我显拳。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棚愤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子杂数,更是在濱河造成了極大的恐慌宛畦,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揍移,死亡現(xiàn)場離奇詭異次和,居然都是意外死亡,警方通過查閱死者的電腦和手機羊精,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進店門斯够,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人喧锦,你說我怎么就攤上這事读规。” “怎么了燃少?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵束亏,是天一觀的道長。 經(jīng)常有香客問我阵具,道長碍遍,這世上最難降的妖魔是什么定铜? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮怕敬,結(jié)果婚禮上揣炕,老公的妹妹穿的比我還像新娘。我一直安慰自己东跪,他們只是感情好畸陡,可當我...
    茶點故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著虽填,像睡著了一般丁恭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上斋日,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天牲览,我揣著相機與錄音,去河邊找鬼恶守。 笑死第献,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的熬的。 我是一名探鬼主播痊硕,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼押框!你這毒婦竟也來了岔绸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤橡伞,失蹤者是張志新(化名)和其女友劉穎盒揉,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體兑徘,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡刚盈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了挂脑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片藕漱。...
    茶點故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖崭闲,靈堂內(nèi)的尸體忽然破棺而出肋联,到底是詐尸還是另有隱情,我是刑警寧澤刁俭,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布橄仍,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏侮繁。R本人自食惡果不足惜虑粥,卻給世界環(huán)境...
    茶點故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宪哩。 院中可真熱鬧娩贷,春花似錦、人聲如沸斋射。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽罗岖。三九已至,卻和暖如春腹躁,著一層夾襖步出監(jiān)牢的瞬間桑包,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工纺非, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哑了,地道東北人。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓烧颖,卻偏偏與公主長得像弱左,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子炕淮,可洞房花燭夜當晚...
    茶點故事閱讀 45,937評論 2 361

推薦閱讀更多精彩內(nèi)容