編輯:關於Android編程
MainActivity如下:
package cc.textexcel;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import android.app.Activity;
import android.os.Bundle;
/**
* Demo描述: 利用HSSFWorkbook解析Excel文件
*
* 注意兩個問題:
* 1 關於行的理解.
* 以表格中最左側的行數作為標准.數字是幾,其對應的為第幾行.
* 最終數字有多大,即代表有多少行.
*
* 2 關於單元格合並的問題,如下的形式
*
* 1 炒豆腐 豆腐三兩.....
* 2 炒青菜 青菜三顆.....
* 3 特色菜 紅燒魚 魚兒一條.....
* 4 炖羊肉 羊肉兩斤.....
* 5 炖牛肉 牛肉兩斤.....
*
* 此處有五行數據,他們都屬於特色菜.
* 但是我們要注意在解析此Excel的時候,只有第一行的第一個Cell裡面可以取到
* 我們想要的"特色菜"這個菜系!!!!!
* 其他行是取到的只是空.要注意這個問題
*/
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new Thread() {
public void run() {
parseExcel();
};
}.start();
}
private void parseExcel() {
HSSFWorkbook hssfWorkbook = null;
try {
POIFSFileSystem poifsFileSystem = new POIFSFileSystem(getResources().getAssets().open("test.xls"));
hssfWorkbook = new HSSFWorkbook(poifsFileSystem);
} catch (IOException e) {
e.printStackTrace();
}
//從工作簿中取出第一張Excel
HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);
//從第三行開始解析,第一二行是表頭,不是業務所需數據
int rowIndex = 2;
String caixiForRows = "";
HSSFRow hssfRow = hssfSheet.getRow(rowIndex);
HSSFCell hssfCell = null;
while ((hssfRow != null) && (hssfRow.getCell(1) != null)) {
//保存每一行中各字段對應的數據
String[] rowDataArray = { "", "", "", "", "", "", "" };
//獲取該行中第一個單元格,以便得到菜系
hssfCell = hssfRow.getCell(0);
if (hssfCell != null) {
String caixiTemp = hssfCell.getStringCellValue();
if (caixiTemp != null&&caixiTemp.trim().length()>=1) {
System.out.println("菜系那裡,所合並單元格的第一行,可得到菜系");
//獲得菜系後將對應值保存到caixiForRows
caixiForRows= caixiTemp;
}else{
System.out.println("菜系那裡,所合並單元格除第一行以外的其他行");
}
}
rowDataArray[0] = caixiForRows;
//得到菜系後,繼續後面的單元格.
//其後的單元格均沒有合並操作,所以方便操作
int cellIndex = 1;
hssfCell = hssfRow.getCell(cellIndex);
while ((hssfCell != null) && (hssfCell.toString().length()> 0)) {
hssfCell = hssfRow.getCell(cellIndex);
rowDataArray[cellIndex] = hssfCell.getStringCellValue();
cellIndex++;
hssfCell = hssfRow.getCell(cellIndex);
}
//至此完成一行的操作.准備進入下一行的解析.
rowIndex++;
hssfRow = hssfSheet.getRow(rowIndex);
System.out.println(rowDataArray[0]+" "+rowDataArray[1]+" "+rowDataArray[2]+" "+rowDataArray[3]
+" "+rowDataArray[4]+" "+rowDataArray[5]+" "+rowDataArray[6]);
}
}
}
main.xml如下:
PS:上面的格式沒有太對齊,修正一下
* 1 炒豆腐 豆腐三兩.....
* 2 炒青菜 青菜三顆.....
* 3 特色菜 紅燒魚 魚兒一條.....
* 4 炖羊肉 羊肉兩斤.....
* 5 炖牛肉 牛肉兩斤.....
【Android開發—電商系列】(二):仿淘寶商品屬性標簽頁
一睹為快 需求 1.動態加載屬性,如尺碼,顏色,款式等 由於每件商品的屬性是不確定的,有的商品的屬性是顏色和尺碼,有的是口味,有的是大小,所以這些屬性不能直接
【Android圖像處理】黑白濾鏡(效果)
說到黑白,我就想起小時候家裡的黑白電視機,顯示效果比起現在的液晶顯示器不知道差到哪裡去了,但是一放假就看電視依然成為周末必做的是。那麼,在Android中要怎麼實現黑白濾
Android 配置文件(activity)元素
語法: . . .被包含在: 可以包含:描述:聲明實現了應用程序可視化用戶界面一部分的一個activity(activity子類),在清單文件中的必
Android 動畫之AlphaAnimation應用詳解
android中提供了4中動畫: AlphaAnimation 透明度動畫效果 ScaleAnimation 縮放動畫效果 TranslateAnimation 位移動畫