这里采用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