HSSFWorkBook是解析excel2007以前的版本(xls)
之后的版本使用XSSFWrokBook(xlsx)

附:处理excel2007之后的版本代码:

package gbyp.autoQuery.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.channels.FileChannel;
import java.util.Date;
import java.util.Iterator; import org.apache.poi.hssf.extractor.ExcelExtractor;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFHyperlink;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import xsf.IContextDictionary;
import xsf.data.DBManager;
import xsf.data.DataRow;
import xsf.data.DataTable;
import xsf.data.Sql;
import xsf.web.HttpContext;
import xsf.web.IAction; public class ExcelExport { public static void main(String[] args) {
ExcelExport ee = new ExcelExport();
ee.writeExcel2();
} public void writeExcel2() {
// 声明excel对象
XSSFWorkbook wb = null;
// 声明poi流
// POIFSFileSystem fs=null;
// 写读取的文件路径
String path = "E:/需要完善的项目清单.xlsx";
try { // 创建文件流 创建excell对象
wb = new XSSFWorkbook(new FileInputStream(path)); // 获得工作薄, 得到工作表
XSSFSheet sheet = wb.getSheetAt(0); boolean isOne = true;
for (Iterator<Row> iter = sheet.rowIterator(); iter.hasNext();) {
// 得到行
Row row = iter.next();
// 迭代列
// 循环每一行的所有列
int i = 0;
for (Iterator<Cell> cellIter = row.cellIterator(); cellIter
.hasNext();) {
// 得到列对象
Cell cell = cellIter.next();
if (i == 1) {
String content = cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC ? cell
.getNumericCellValue() + ""
: cell.getStringCellValue();
if (!content.equals("项目名称")) {
//数据库取值并赋值
cell.setCellValue("****项目");
}
} i++;
}
if (isOne) {
isOne = false;
}
} String path2 = "E:/需要完善的项目清单2.xlsx";
// 创建输出流
OutputStream out = new FileOutputStream(path2);
// 将数据写入文件
wb.write(out);
// 关闭文件
out.close(); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

附:处理excel2007之前版本代码:

package gbyp.autoQuery.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.channels.FileChannel;
import java.util.Date;
import java.util.Iterator;
import org.apache.poi.hssf.extractor.ExcelExtractor;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFHyperlink;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.CellRangeAddress; import xsf.IContextDictionary;
import xsf.data.DBManager;
import xsf.data.DataRow;
import xsf.data.DataTable;
import xsf.data.Sql;
import xsf.web.HttpContext;
import xsf.web.IAction; public class ExcelExport { public static void main(String[] args) {
ExcelExport ee = new ExcelExport();
ee.writeExcel2();
} public void writeExcel2() {
// 声明excel对象
HSSFWorkbook wb = null;
// 声明poi流
POIFSFileSystem fs = null;
// 写读取的文件路径
String path = "E:/需要完善的项目清单.xls";
try { // 设置要读取的文件路径
// 创建文件流
fs = new POIFSFileSystem(new FileInputStream(path)); // HSSFWorkBook相当于一个excel文件,HSSFWorkBook是解析excel2007以前的版本(xls)
// 之后的版本使用XSSFWrokBook(xlsx)
// 创建excell对象
wb = new HSSFWorkbook(fs); // 获得工作薄
// 得到工作表
HSSFSheet sheet = wb.getSheetAt(0); boolean isOne = true; for (Iterator<Row> iter = sheet.rowIterator(); iter.hasNext();) {
// 得到行
Row row = iter.next();
// 迭代列
// 循环每一行的所有列
int i = 0;
for (Iterator<Cell> cellIter = row.cellIterator(); cellIter.hasNext();) {
// 得到列对象
Cell cell = cellIter.next();
if (i == 1) {
String content = cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC ? cell.getNumericCellValue() + "": cell.getStringCellValue();
if(!content.equals("项目名称")){
cell.setCellValue("****项目");
}
} i++;
}
if (isOne) { isOne = false;
}
} String path2 = "E:/需要完善的项目清单2.xls";
// 创建输出流
OutputStream out = new FileOutputStream(path2);
// 将数据写入文件
wb.write(out);
// 关闭文件
out.close(); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }

读取指定excel,修改并某个值并另存到指定路径的更多相关文章

  1. C#读取Excel,DataTable取值为空的解决办法

    连接字符串这么些就行了 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + opnFileName ...

  2. JDBC批处理读取指定Excel中数据到Mysql关系型数据库

    这个demo是有一个Excel中的数据,我需要读取其中的数据然后导入到关系型数据库中,但是为了向数据库中插入更多的数据,循环N次Excel中的结果. 关于JDBC的批处理还可以参考我总结的如下博文: ...

  3. 【转】c# winform 创建文件,把值写入文件,读取文件里的值,修改文件的值,对文件的创建,写入,修改

    创建文件和读取文件的值 #region 判断文件是否存在,不存在则创建,否则读取值显示到窗体 public FormMain() { InitializeComponent(); //ReadFile ...

  4. [转]POI读写Excel 修改

    [转]POI读写Excel 修改 一.Excel基础 二.HSSF概况 三.通过usermodel读取文件 四.通过usermodel写入文件 五.通过eventusermodel读取文件 六.HSS ...

  5. jQuery设置和获取以及修改class name值操作

    在Web程序开发中.很多时候会用需要修改Html标签的class名称.来达到修改标签样式的效果.那么在代码中一般是怎么操作的呢.本文将为你详细讲解一下class的使用.在jQuery中可以使用attr ...

  6. 将excel中某列数据中,含有指定字符串的记录取出,并生成用这个字符串命名的txt文件

    Python 一大重要的功能,就是可处理大量数据,那分不开的即是使用Excel表格了,这里我做下学习之后的总结,望对我,及广大同仁们是一个帮助Python处理Excel数据需要用到2个库:xlwt 和 ...

  7. UiPath Excel修改操作

    一.Excel 修改操作 1.删除行 (1)控件介绍 Insert/Delete Rows: 在特定位置添加或删除指定数量的行         常用属性介绍: Destination: NoRows: ...

  8. DataTable to Excel(使用NPOI、EPPlus将数据表中的数据读取到excel格式内存中)

    /// <summary> /// DataTable to Excel(将数据表中的数据读取到excel格式内存中) /// </summary> /// <param ...

  9. POI读取/写入Excel文件

    import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...

随机推荐

  1. Guava Cache源码解析

    概述: 本次主要是分析cache的源码,基本概念官方简介即可. 基本类图: 在官方的文档说明中,Guava Cache实现了三种加载缓存的方式: LoadingCache在构建缓存的时候,使用buil ...

  2. Android手机客户端测试点(全)

    网上看到一个整理比较完善的手机客户端测试:

  3. Linux学习总结(十)—— Java开发环境搭建:JDK+Maven

    Java开发环境最基础的两个开源软件是JDK和Maven. JDK 到Oracle官网下载相对应的源码包,这里我选择的是:Linux x64系统的jdk-8u131-linux-x64.tar.gz. ...

  4. 【LCT】一步步地解释Link-cut Tree

    简介 Link-cut Tree,简称LCT. 干什么的?它是树链剖分的升级版,可以看做是动态的树剖. 树剖专攻静态树问题:LCT专攻动态树问题,因为此时的树剖面对动态树问题已经无能为力了(动态树问题 ...

  5. 关于Yii2的checkboxList的初始选项设置问题

    先在网上找了个checkboxList的描述: public static function checkboxList($name, $selection = null, $items = [], $ ...

  6. BotVS开发基础—2.2 下限价单 交易

    代码 import json def main(): Log("ORDER_STATE_PENDING:", ORDER_STATE_PENDING, ", ORDER_ ...

  7. (转)新手写爬虫v2.5(使用代理的异步爬虫)

    开始 开篇:爬代理ip v2.0(未完待续),实现了获取代理ips,并把这些代理持久化(存在本地).同时使用的是tornado的HTTPClient的库爬取内容. 中篇:开篇主要是获取代理ip:中篇打 ...

  8. Spring MVC控制层传递对象后在JSP页面中的取值方法

    List<Order> orders = new ArrayList<Order>(); for (int i = 0; i < 3; i++) { Order t = ...

  9. mysql存储过程 基本语法

    话不多说 一.MySQL 创建存储过程 "pr_add" 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 "a"."b& ...

  10. QT creator编程C++第一步,说“Hello world!”

    这个学期选了计算机学院的<数字图像处理>,正好和我的图像识别项目有所关联,老师说不能用MATLAB来做,这让我一个没学过C++的孩纸欲哭无泪. 只好求助计算机学院的大佬,自学C++. 大佬 ...