关于excle导数据的一些代码笔记
package com.bonc.util; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream; public class CopyExcelTest { /**
* 复制单个文件
* @param oldPath String 原文件路径 如:c:/fqf.txt
* @param newPath String 复制后路径 如:f:/fqf.txt
* @return boolean
*/
public static void copyFile(String newPath) {
try {
int bytesum = 0;
int byteread = 0;
File oldfile = new File("D:/aa/modul2.xls");
if (oldfile.exists()) { //文件存在时
InputStream inStream = new FileInputStream("D:/aa/modul2.xls"); //读入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1444];
int length;
while ( (byteread = inStream.read(buffer)) != -1) {
bytesum += byteread; //字节数 文件大小
fs.write(buffer, 0, byteread);
}
inStream.close();
fs.close();
}
} catch (Exception e) {
System.out.println("复制单个文件操作出错");
e.printStackTrace();
}
} public static void main(String[] args) {
copyFile("D:/aa/new2.xls");
} }
package com.bonc.util; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.bonc.bean.Huzhu;
import com.bonc.bean.Person; /**
* 操作Excel表格的功能类
*/
public class ExcelReader { public static List<Huzhu> showExcel(String path) throws Exception {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(new File(path)));
HSSFSheet sheet = null; List<Huzhu> huzhuList = new ArrayList<>();
for (int i = 0; i < workbook.getNumberOfSheets(); i++) {// 获取每个Sheet表
sheet = workbook.getSheetAt(i);
for (int j = 0; j < sheet.getLastRowNum() + 1; j++) {// getLastRowNum,获取最后一行的行标
HSSFRow row = sheet.getRow(j);
if (row != null) {
if (row.getCell(1).toString().equals("a户主")){
Huzhu huzhu = new Huzhu(row.getCell(0).toString(), row.getCell(1).toString(),
row.getCell(2).toString(), row.getCell(3).toString(),
row.getCell(4).toString()+row.getCell(5).toString(),j);
huzhuList.add(huzhu);
}
}
//System.out.println(""); // 读完一行后换行
}
//System.out.println(sheet.getLastRowNum());
//System.out.println("读取sheet表:" + workbook.getSheetName(i) + " 完成");
} return huzhuList;
} public static List<Huzhu> getPerson(List<Huzhu> huzhuLists,String path) throws FileNotFoundException, IOException{ HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(new File(path)));
HSSFSheet sheet = null;
sheet = workbook.getSheetAt(0); int size = huzhuLists.size();
int []nums = new int[size+1];
for (int i = 0; i < nums.length - 1; i++) {
Huzhu huzhu = huzhuLists.get(i);
nums[i] = huzhu.getIndex();
}
nums[size] = sheet.getLastRowNum();
int[] sumTotle = sumTotle(nums);
// System.out.println("共户:" + size);
// System.out.println("计算出:" + sumTotle.length);
List<Huzhu> huzhuListAndPerson = new ArrayList<>();
for (int i = 0; i < size; i++) {
List<Person> personList = new ArrayList<>();
Huzhu huzhu = huzhuLists.get(i);
int huzhuIndex = huzhu.getIndex();
int personNum = sumTotle[i];
for (int j = 1; j <= personNum; j++) {
HSSFRow row = sheet.getRow(huzhuIndex + j);
Person person = new Person(row.getCell(1).toString(), row.getCell(2).toString(),
row.getCell(3).toString(), row.getCell(4).toString()+row.getCell(5).toString());
personList.add(person);
}
huzhu.setPerson(personList);
huzhuListAndPerson.add(huzhu);
}
return huzhuListAndPerson;
} private static int[] sumTotle(int[] s){ int []temp = new int[s.length-1];
for (int i = 0; i < s.length - 1; i++) {
temp[i] = s[i+1] - s[i] - 1;
}
return temp; } public static void main(String[] args) throws IOException { int []temp = new int[3];
temp[0] = 2;
temp[1] = 48;
temp[2] = 1851;
int[] is = sumTotle(temp);
System.out.println(Arrays.toString(is)); }
}
package com.bonc.util; import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class SetValues { private String path; private HSSFSheet sheet; public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
} private static HSSFWorkbook wb = null; private static FileOutputStream os = null; public SetValues(String path) throws FileNotFoundException, IOException{
this.wb = new HSSFWorkbook(new FileInputStream(path));
this.os = new FileOutputStream(path);
this.sheet = this.wb.getSheetAt(0);
} public static void main(String[] args) throws FileNotFoundException, IOException {
String filePath = "D:\\aa\\new2.xls";
SetValues setValues = new SetValues(filePath);
setValues.setValue( 15, 4, new HSSFRichTextString("汉族1"));
//setValues.setValue( 16, 2, new HSSFRichTextString("汉族"));
//setValues.setValue(filePath, 3, 12, new HSSFRichTextString("高亚伟"));
//new SetValues().setValue(filePath, 14, 5, new HSSFRichTextString("高亚2伟"));
setValues.setValue(4, 1, new HSSFRichTextString("高亚1伟"));
setValues.flush();
setValues.shutDown();
} public HSSFWorkbook getWb() {
return wb;
}
public void setWb(HSSFWorkbook wb) {
SetValues.wb = wb;
} public FileOutputStream getOs() {
return os;
} public void setOs(FileOutputStream os) {
SetValues.os = os;
} public void setValue(int x, int y, HSSFRichTextString val) {
try {
HSSFRow row = sheet.getRow(x);
HSSFCell cell = row.getCell((short) y);
cell.setCellValue(val);
wb.setForceFormulaRecalculation(true);
} catch (Exception e) {
e.printStackTrace();
} }
public void flush(){
try {
wb.write(os);
os.flush();
} catch (IOException e) {
e.printStackTrace();
}
} public void shutDown() throws IOException{
if (os != null) {
os.close();
}
} }
关于excle导数据的一些代码笔记的更多相关文章
- 【hadoop代码笔记】Mapreduce shuffle过程之Map输出过程
一.概要描述 shuffle是MapReduce的一个核心过程,因此没有在前面的MapReduce作业提交的过程中描述,而是单独拿出来比较详细的描述. 根据官方的流程图示如下: 本篇文章中只是想尝试从 ...
- 【hadoop代码笔记】hadoop作业提交之汇总
一.概述 在本篇博文中,试图通过代码了解hadoop job执行的整个流程.即用户提交的mapreduce的jar文件.输入提交到hadoop的集群,并在集群中运行.重点在代码的角度描述整个流程,有些 ...
- 【Hadoop代码笔记】目录
整理09年时候做的Hadoop的代码笔记. 开始. [Hadoop代码笔记]Hadoop作业提交之客户端作业提交 [Hadoop代码笔记]通过JobClient对Jobtracker的调用看详细了解H ...
- <Python Text Processing with NLTK 2.0 Cookbook>代码笔记
如下是<Python Text Processing with NLTK 2.0 Cookbook>一书部分章节的代码笔记. Tokenizing text into sentences ...
- [学习笔记] SSD代码笔记 + EifficientNet backbone 练习
SSD代码笔记 + EifficientNet backbone 练习 ssd代码完全ok了,然后用最近性能和速度都非常牛的Eifficient Net做backbone设计了自己的TinySSD网络 ...
- DW网页代码笔记
DW网页代码笔记 1.样式. class 插入类样式 标签技术(html)解决页面的内容样式技术(css)解决页面的外观脚本技术 解决页面动态交互问题<form> ...
- 前端学习:JS(面向对象)代码笔记
前端学习:JS(面向对象)代码笔记 前端学习:JS面向对象知识学习(图解) 创建类和对象 创建对象方式1调用Object函数 <body> </body> <script ...
- 资源 | 数十种TensorFlow实现案例汇集:代码+笔记
选自 Github 机器之心编译 参与:吴攀.李亚洲 这是使用 TensorFlow 实现流行的机器学习算法的教程汇集.本汇集的目标是让读者可以轻松通过案例深入 TensorFlow. 这些案例适合那 ...
- 【Hadoop代码笔记】Hadoop作业提交之TaskTracker获取Task
一.概要描述 在上上一篇博文和上一篇博文中分别描述了jobTracker和其服务(功能)模块初始化完成后,接收JobClient提交的作业,并进行初始化.本文着重描述,JobTracker如何选择作业 ...
随机推荐
- Matplotlib——初级
matplotlib是一个专门用来绘图的库,在分析数据的时候,使用它可以将数据进行可视化,更直观的呈现.下面是几个通过matplot绘制的图. 通过图形的绘制,我们可以很清晰地看到数据直接的关系,并对 ...
- 如何应用SPRITEKIT的CAMERA实现游戏中的ENDLESS无限循环背景
A Tutorial For How To Use SpriteKit Camera Making Endless Background Player运用Camera节点向前移动的效果 向前舞动 命为 ...
- BZOJ1023: [SHOI2008]cactus仙人掌图(仙人掌dp)
Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3467 Solved: 1438[Submit][Status][Discuss] Descripti ...
- h5跳转到app的实现
随着业务的增加,可能存在这么一种需求,就是需要从h5中直接跳转到app.如果没有安装app的话,则提示到应用市场或者app store下载安装.不过问题就在这个地方,单纯的用h5是没有方法判断是否安装 ...
- CentOS7 LNMP+phpmyadmin环境搭建(三、安装phpmyadmin)
之前我们已经安装了lnmp的环境,现在让我们来安装phpmyadmin. 跟前一样,yum默认的库里是没有phpmyadmin的,我们需要从epel库里进行安装,之前已经安装过epel的朋友就可以直接 ...
- 大数据学习--day04(选择结构、循环结构、大数据java基础面试题)
选择结构.循环结构.大数据java基础面试题 switch: 注意: byte short int char String(jdk1.7支持) 不能是 long float double boolea ...
- Java核心技术36讲----------谈谈final、finally、finalize有什么不同
一.final 1.final修饰方法时,需要注意的点: #final修饰方法时,之前的第二个原因是效率.但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升.在最近的Java版本中,不需要使用 ...
- Python-入门必备
·Python入门必备 @ 交互式编程 交互式编程不需要创建脚本文件,而是直接通过Python解释器的交互模式进来编写代码.下面我们来打开python自带的交互式编程客户端,打印一个hello,wor ...
- PAT (Basic Level) Practice 1008 数组元素循环右移问题
个人练习 一个数组A中存有N(>)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN ...
- Chip-seq peak annontation
Chip-seq peak annontation Chip-seq peak annontation PeRl narrowPeak/boardPeak narrowPeak/boardPeak 是 ...