package a;
import java.io.FileInputStream;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class ReadExcel {
public static void main(String[] args) {
try {
// 创建一个文件输入流
FileInputStream is = new FileInputStream("D:\\test.xls");
// 得到工作薄
HSSFWorkbook workbook = new HSSFWorkbook(is);
// 得到工作表的张数
int num = workbook.getNumberOfSheets();
System.out.println("工作表的数目:" + num);
// 得到第一张工作表
HSSFSheet sheet = workbook.getSheetAt(0);
// 得到第一列的宽度
int width = sheet.getColumnWidth((short) 0);
System.out.println("第一列的宽度:" + width);
// 得到第一行的单元格迭代器
Iterator iter = sheet.getRow(0).cellIterator();
// 得到工作表的行数
int frnum = sheet.getFirstRowNum();
int lrnum = sheet.getLastRowNum();
int rnum = lrnum - frnum + 1;
System.out.println("工作表的行数为:" + rnum);
// 得到工作表的列数
int fcnum = sheet.getRow(0).getFirstCellNum();
int lcnum = sheet.getRow(0).getLastCellNum();
int cnum = lcnum - fcnum;
System.out.println("工作表的列数为:" + cnum);
// 打印第一行的每一个单元格的信息
while (iter.hasNext()) {
// 得到单元格
HSSFCell cell = (HSSFCell) iter.next();
// 单元格为字符串型的情况
if (cell.getCellType() == 1) {
System.out.println("第" + cell.getCellNum() + "个单元格:"
+ cell.getStringCellValue());
}
// 单元格为布尔型的情况
else if (HSSFCell.CELL_TYPE_BOOLEAN == cell.getCellType()) {
System.out.println("第" + cell.getCellNum() + "个单元格:"
+ cell.getBooleanCellValue());
}
// 单元格为数字型的情况
else if (HSSFCell.CELL_TYPE_NUMERIC == cell.getCellType()) {
System.out.println("第" + cell.getCellNum() + "个单元格:"
+ cell.getNumericCellValue());
}
// 单元格为日期型的情况
else if (HSSFDateUtil.isCellDateFormatted(cell)) {
System.out.println("第" + cell.getCellNum() + "个单元格:"
+ cell.getDateCellValue());
}
// 单元格为计算公式型的情况
else if (HSSFCell.CELL_TYPE_FORMULA == cell.getCellType()) {
System.out.println("第" + cell.getCellNum() + "个单元格:"
+ cell.getCellFormula());
}
// 单元格为错误型的情况
else if (HSSFCell.CELL_TYPE_ERROR == cell.getCellType()) {
System.out.println("第" + cell.getCellNum() + "个单元格:"
+ cell.getErrorCellValue());
}
// 单元格为空的情况
else if (HSSFCell.CELL_TYPE_BLANK == cell.getCellType()) {
System.out.println("第" + cell.getCellNum() + "个单元格:"
+ "单元格为空");
}
// 其他
else {
System.out.println("第" + cell.getCellNum() + "个单元格:"
+ "其他情形");
}
}
// 创建一个新行
HSSFRow row = sheet.createRow(rnum + 1);
// 创建一个新的单元格,并设置值
row.createCell((short) 0).setCellValue("测试");
// 打印新建单元格的值
System.out.println(row.getCell((short) 0).getStringCellValue());
} catch (Exception e) {
System.out.println(e.toString());
}
}
}
java用poi读写excel表
4星 · 超过85%的资源 需积分: 9 37 浏览量
2009-12-21
08:33:25
上传
评论 2
收藏 3KB RAR 举报
tianyuchao
- 粉丝: 3
- 资源: 17
最新资源
- 基于STM32F103C8T6单片机蓄电池在线监测系统主板硬件(原理图+PCB)工程文件.zip
- mysql大纲资料.txt
- c++大纲资料.txt
- 效率工具bat脚本实现日志提取
- MyBatis 中动态 SQL 的示例
- STM8L101F3P6单片机+CC1100模块433M遥控器设计硬件(原理图+PCB)工程文件.zip
- 上传下载铁人下载系统 Liuxing 1.0-liuxing1.0.rar
- 南京邮电大学数学实验实力雄厚,凭借其优秀的师资力量、丰富的实践教学资源和卓越的科研成果,成为国内一流的数学实验教学和科研基地
- 【火爆朋友圈的今天吃什么源码 v1.0】随机的为用户带来每一天的用餐选择和推荐.rar
- MPU6050中文版数据手册
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页