妈呀这玩意浪费了半天琢磨,从Qt过渡Android还真不容易。各种傻瓜式的错误。
使用EXCEL之前需要往工程添加jxl.jar(excel)的API 导入方法 项目工程目录libs,直接复制jxl.jar到这里
其它地方转来的example:
package com.example.xl;
import java.io.File;
import java.io.IOException;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
//详细参考 http://www.ibm.com/developerworks/cn/java/l-javaExcel/
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = (TextView) findViewById(R.id.myTextView02); // mTextView01
// =
// (TextView)
// findViewById(R.id.myTextView01);
String path = "mnt/sdcard/test.xls";
writeExcel(path);
// textView.setText(readExcel(path,5,5)+readExcel(path,10,10));
}
public void writeExcel(String fileName) {
WritableWorkbook wwb = null;
try {
// 创建一个可写入的工作薄(Workbook)对象
wwb = Workbook.createWorkbook(new File(fileName));
} catch (IOException e) {
e.printStackTrace();
}
if (wwb != null) {
// 第一个参数是工作表的名称,第二个是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet("sheet1", 0);
// 在指定单元格插入数据
Label lbl1 = new Label(5, 5, "Excel");
Label bll2 = new Label(10, 10, "的操作");
try {
ws.addCell(lbl1);
ws.addCell(bll2);
} catch (RowsExceededException e1) {
e1.printStackTrace();
} catch (WriteException e1) {
e1.printStackTrace();
}
try {
// 从内存中写入文件中
wwb.write();
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}
public String readExcel(String path, int x, int y) {
String content = "";
try {
Workbook book = Workbook.getWorkbook(new File(path));
Sheet sheet = book.getSheet(0);
// 得到x行y列所在单元格的内容
String cellStr = sheet.getRow(x)[y].getContents();
content = cellStr;
} catch (BiffException e) {
content = "";
e.printStackTrace();
} catch (IOException e) {
content = "";
e.printStackTrace();
}
return content;
}
}
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${packageName}.${activityClass}" >
<TextView
android:id="@+id/myTextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>