【java 菜鸟实践<一>】实现PIO excel更新某个单元格数据(支持excel2003和2007)
来源:互联网 发布:神盾网络验证山寨 编辑:程序博客网 时间:2024/06/15 03:42
package common;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFCell;
import java.io.*;
/**
* User: XZee
* Date: 2011-10-10
* Time: 16:10:29
*/
public class write_excel {
/** 总行数 */
private int totalRows = 0;
/** 总列数 */
private int totalCells = 0;
/** 错误信息 */
private static String errorInfo;
private static XSSFWorkbook workbook;
private static HSSFWorkbook workbook2;
/** 构造方法
* @return */
public int getTotalRows() {
return totalRows;
}
public int getTotalCells() {
return totalCells;
}
public String getErrorInfo() {
return errorInfo;
}
public static boolean validateExcel(String filePath) {
/** 检查文件名是否为空或者是否是Excel格式的文件 */
if (filePath == null|| !(isExcel2003(filePath) || isExcel2007(filePath))) {
errorInfo = "文件名不是excel格式";
return false;
}
/** 检查文件是否存在 */
File file = new File(filePath);
if (file == null || !file.exists()) {
errorInfo = "文件不存在";
return false;
}
return true;
}
public static boolean isExcel2003(String filePath) {
return filePath.matches("^.+\\.(?i)(xls)$");
}
public static boolean isExcel2007(String filePath) {
return filePath.matches("^.+\\.(?i)(xlsx)$");
}
/**
* 只是一个demo,这里假设修改的值是String类型
* @param filePath
* @param sheetIndex
* @param col
* @param row
* @param value
* @throws Exception
*/
public static void updateExcel(String filePath,int sheetIndex,int row,int col,String value)throws Exception{
/** 验证文件是否合法 */
if (!validateExcel(filePath)) {
System.out.println(errorInfo);
}
FileInputStream fis=new FileInputStream(filePath);
/** 判断文件的类型,是2003还是2007 */
if (isExcel2007(filePath)) {
workbook = new XSSFWorkbook(fis);
XSSFSheet sheet=workbook.getSheetAt(0);
XSSFRow r=sheet.getRow(row);
XSSFCell cell=r.getCell(col);
String str=cell.getStringCellValue();
//这里假设对应单元格原来的类型也是String类型
cell.setCellValue(value);
System.out.println("单元格原来值为"+str+"\n");
System.out.println("单元格值被更新为"+value+"\n");
fis.close();//关闭文件输入流
FileOutputStream fos=new FileOutputStream(filePath);
workbook.write(fos);
fos.close();//关闭文件输出流
}else if(isExcel2003(filePath)){
workbook2 = new HSSFWorkbook(fis);
HSSFSheet sheet = workbook2.getSheetAt(sheetIndex);
HSSFRow r = sheet.getRow(row);
HSSFCell cell = r.getCell(col);
String str=cell.getStringCellValue();
//这里假设对应单元格原来的类型也是String类型
cell.setCellValue(value);
System.out.println("单元格原来值为"+str);
System.out.println("单元格值被更新为"+value);
fis.close();//关闭文件输入流
FileOutputStream fos=new FileOutputStream(filePath);
workbook2.write(fos);
fos.close();//关闭文件输出流
}else{
System.out.println("当前文件,可能不是excel203或excel2007文件,请检查文件");
}
}
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
File file=new File("E:\\workspace\\FE_performance_test\\Datasource\\TestCase.xlsx");
String file="E:\\workspace\\FE_performance_test\\Datasource\\TestCase.xlsx";
//下面尝试更改第一行第一列的单元格的值
write_excel.updateExcel(file,0,6,1,"2哥好腻害");
}
原文地址:http://blog.csdn.net/zouxiongqqq/article/details/78478298
- 【java 菜鸟实践<一>】实现PIO excel更新某个单元格数据(支持excel2003和2007)
- 【java 菜鸟实践<一>】实现PIO excel更新某个单元格数据(支持excel2003和2007)
- 【java 菜鸟实践<二>】采用PIO将图片存入指定的excel单元格中(支持excel2003和2007)
- java pio excel2003/2007
- PIO读取excel文档,java实现
- PIO读取excel文档,java实现
- PIO读取excel文档,java实现
- Java 操作 Excel (读取Excel2003 2007,Poi实现)
- 知识总结-Java 操作 Excel (读取Excel2003 2007,Poi实现)
- Java 操作 Excel (读取Excel2003 2007,Poi实现)
- Java 操作 Excel (读取Excel2003 2007,Poi实现)
- Java 操作 Excel (读取Excel2003 2007,Poi实现)
- java POI实现Excel单元格数据换行
- java POI实现Excel单元格数据格式化
- Java Excel PIO示例
- java操作Excel-PIO
- apache POI3.2 java操作excel 设置数据有效性,实现excel单元格列表和提示
- apache POI3.2 java操作excel 设置数据有效性,实现excel单元格列表和提示
- lnmp搭建(Nginx1.12.1;mysql5.7.20;php7.2.0)
- Unsupported Media Type,status 415
- AOP+log4j记录日志
- Python 画 直方图/条形图/柱状图
- 2017年最佳的20款css工具
- 【java 菜鸟实践<一>】实现PIO excel更新某个单元格数据(支持excel2003和2007)
- Echarts学习 折线图
- Android之android:layout_gravity和android:gravity属性的区别
- ThinkPHP5.0应用生命周期
- SpringMVC注解
- 第三周3
- 轻松改善网站安全的方法
- Mysql函数 例题 stage1-8
- Delphi字符串 消息机制实现消息传递字符串