java读写Excel简单实例

114 阅读1分钟

这里采用jxl jar包进行操作Excel jxl只支持xls格式的Excel

jar下载地址:sourceforge.net/projects/jx…

文档:jxl.sourceforge.net/javadoc/ind…

代码如下

package ExcelTest;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class ReadExcel {

	public static void main(String[] args) {
		String xls = "C:\\\\Users\\\\Administrator.I1OYHBI4VHCKRVJ\\\\Desktop\\\\11.xls";
		read(new File(xls)); //格式必须为xls 不要更改该文件格式,打开另存为xls格式
		write(read(new File(xls)));
	}
	
	public static List<List<String>> read(File file) {
		//返回的list
		List<List<String>> list = new ArrayList<List<String>>();
		try {
			 // 创建输入流,读取Excel  
			InputStream is = new FileInputStream(file);
			// 获取Excel 文件对象
			Workbook wb = Workbook.getWorkbook(is);
			
			//获取Excel指定工作表 默认的第一个
			//int numberOfSheets = wb.getNumberOfSheets();
			
			//创建一个Sheet对象
			Sheet sheet = wb.getSheet(0);
			
			//获取行数 
			int rows = sheet.getRows();
			
			//读取Excel内容
			for (int i = 0; i < rows; i++) {
				//获取每一行的数据
				int column = sheet.getColumns();
				//储存每行内容数据
				Cell cell = null;
				List<String> coList = new ArrayList<>();
				
				for (int j = 0; j <column; j++) {
					//获取第i行每j列的数据
					 cell = sheet.getCell(j,i);
					 coList.add(cell.getContents());
				}
				
				list.add(coList);
			}
			//打印每一条数据
			System.out.println(list);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (BiffException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return list;
		
	}
	
	
	public static void write(List<List<String>> list){
		
			//1 创建文件
			File file =  new File("c:" + File.separator + LocalDate.now().toString() + ".xls");
			//2 创建打开文件
			WritableWorkbook wts = null;
			try {
				wts = Workbook.createWorkbook(file);
				//3 创建sheet工作表
				WritableSheet sheet = wts.createSheet("sheet1", 0); //0 表示第一个
				//需要写入的行数
				int size = list.size();
				//3 每一行写入数据
				for (int i = 0; i < size; i++) {
					List<String> list2 = list.get(i);
					for (int j = 0; j < list2.size(); j++) {
						//向第i行j列插入数据
						sheet.addCell(new jxl.write.Label(j, i, list2.get(j).toString()));
						
					}
				}
			} catch (IOException e) {
				e.printStackTrace();
			} catch (RowsExceededException e) {
				e.printStackTrace();
			} catch (WriteException e) {
				e.printStackTrace();
			}
			
	} 
	}

若想兼容格式xlsx推荐使用poi 进行操作做Excel