【java 菜鸟实践<一>】实现PIO excel更新某个单元格数据(支持excel2003和2007)
来源:互联网 发布:海豹突击队淘宝有吗 编辑:程序博客网 时间:2024/06/05 00:34
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哥好腻害");
}
- 【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单元格列表和提示
- Android6.0 很详细的电源管理分析
- 拓扑排序
- zend studio10破解
- npm install --save 和 --save-dev的区别
- PHP Simple HTML DOM解析器
- 【java 菜鸟实践<一>】实现PIO excel更新某个单元格数据(支持excel2003和2007)
- 今天来做一个PHP电影小爬虫。
- PHP电影小爬虫(2)
- 基于Dragonboard 410c的camera调试之Android L上的调试
- hdu2026(water~~)
- 【Unity】DateTime各种时间字符串
- 分解质因数
- hdu2027
- hdu2029