java读写excel表格数据

java读写excel表格数据

excel类

package excel;

import java.io.File;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;


public class excel {

	public static void main(String[] args) throws Exception {
		//Excel办公,以表格形式存在
		//如何实现:1.fastExcel 2.jxl解析(第三方) 3.poi方式(第三方)
		//通过jxl方式解析Excel步骤如下:
		//1. 导入jxl的jar包
		//2. 获取到Excel文件
		File file = new File("/Users/holmes/eclipse-workspace/excel/data/ip.xls");
		Workbook wb =  Workbook.getWorkbook(file);
		//3. 获取指定的sheet页码   通过指定的Sheet页的名字获取指定的Sheet页,也可以通过索引获取Sheet
		Sheet sheet = wb.getSheet("Sheet1");
		//4. 获取指定的单元格的数据  通过getCell方法获取指定单元格对象,参数是column,row,索引从0开始
//		Cell cell = sheet.getCell(0,0);
//		System.out.println(cell.getContents());
		
		//4.1 循环获取指定的行和列的单元格的值     外循环控制行,内循环控制列
		for (int i = 0; i < sheet.getRows(); i++) {
			for (int j = 0; j < sheet.getColumns(); j++) {
				Cell cell = sheet.getCell(j,i);
				System.out.print(cell.getContents()+"\t");      //\t代表tab键的字符
			}
			System.out.println();               //设置每查询完一行就换行
		}
		wb.close();    //将工作簿的资源关闭
		
		/**
		 * 写数据进入工作表
		 */
		createWritableWorkbook("/Users/holmes/eclipse-workspace/getProxy/data", "1.xls");
	}
	
		// 首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
		public static WritableWorkbook createWritableWorkbook(String parent,
				String fileName) {
			WritableWorkbook wwb = null;
			try {
				// 首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
				wwb = Workbook.createWorkbook(new File(parent, fileName));
				String[][] ss = { { "东亚", "日本111" }, { "南亚", "印度11" },
						{ "其他", "缅甸11" } };
				writeExcel(wwb, ss);
	 
			} catch (Exception e) {
				e.printStackTrace();
			}
			return wwb;
		}
		// 创建一个可写入的工作表
		// Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
		public static void writeExcel(WritableWorkbook wwb, String[][] ss)
				throws Exception {
			if (wwb != null && ss != null) {
				WritableSheet ws = wwb.createSheet("工作表名称", 0);
				// 下面开始添加单元格
				for (int i = 0; i < ss.length; i++) {
					for (int j = 0; j < ss[i].length; j++) {
						// 这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
						Label labelC = new Label(j, i, ss[i][j]);
						// 将生成的单元格添加到工作表中
						ws.addCell(labelC);
					}
				}
				// 从内存中写入文件中
				wwb.write();
				// 关闭资源,释放内存
				wwb.close();
			}
		}




}