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导数据的一些代码笔记的更多相关文章

  1. 【hadoop代码笔记】Mapreduce shuffle过程之Map输出过程

    一.概要描述 shuffle是MapReduce的一个核心过程,因此没有在前面的MapReduce作业提交的过程中描述,而是单独拿出来比较详细的描述. 根据官方的流程图示如下: 本篇文章中只是想尝试从 ...

  2. 【hadoop代码笔记】hadoop作业提交之汇总

    一.概述 在本篇博文中,试图通过代码了解hadoop job执行的整个流程.即用户提交的mapreduce的jar文件.输入提交到hadoop的集群,并在集群中运行.重点在代码的角度描述整个流程,有些 ...

  3. 【Hadoop代码笔记】目录

    整理09年时候做的Hadoop的代码笔记. 开始. [Hadoop代码笔记]Hadoop作业提交之客户端作业提交 [Hadoop代码笔记]通过JobClient对Jobtracker的调用看详细了解H ...

  4. <Python Text Processing with NLTK 2.0 Cookbook>代码笔记

    如下是<Python Text Processing with NLTK 2.0 Cookbook>一书部分章节的代码笔记. Tokenizing text into sentences ...

  5. [学习笔记] SSD代码笔记 + EifficientNet backbone 练习

    SSD代码笔记 + EifficientNet backbone 练习 ssd代码完全ok了,然后用最近性能和速度都非常牛的Eifficient Net做backbone设计了自己的TinySSD网络 ...

  6. DW网页代码笔记

    DW网页代码笔记 1.样式.       class  插入类样式  标签技术(html)解决页面的内容样式技术(css)解决页面的外观脚本技术       解决页面动态交互问题<form> ...

  7. 前端学习:JS(面向对象)代码笔记

    前端学习:JS(面向对象)代码笔记 前端学习:JS面向对象知识学习(图解) 创建类和对象 创建对象方式1调用Object函数 <body> </body> <script ...

  8. 资源 | 数十种TensorFlow实现案例汇集:代码+笔记

    选自 Github 机器之心编译 参与:吴攀.李亚洲 这是使用 TensorFlow 实现流行的机器学习算法的教程汇集.本汇集的目标是让读者可以轻松通过案例深入 TensorFlow. 这些案例适合那 ...

  9. 【Hadoop代码笔记】Hadoop作业提交之TaskTracker获取Task

    一.概要描述 在上上一篇博文和上一篇博文中分别描述了jobTracker和其服务(功能)模块初始化完成后,接收JobClient提交的作业,并进行初始化.本文着重描述,JobTracker如何选择作业 ...

随机推荐

  1. Flex入坑指南

    弹性布局flex是一个几年前的CSS属性了,说它解放了一部分生产力不为过.至少解放了不少CSS布局相关的面试题 :) 之前网上流行的各种XX布局,什么postion: absolute+margin, ...

  2. hibernateDAO层基本的增删改查

    完整的学习项目放在了我的github上,是一个半成品的在线音乐网站. hibernate版本1.4 下面是userDAO 即对user表进行增删改查 package DAO; import java. ...

  3. RAC初体验(环境搭建)

      实施阶段: 1.主机配置 2.安装Clusterware 3.安装Oracle Database 4.配置Listener 5.创建ASM 6.创建Database 一.主机配置 1.网络设置 I ...

  4. Windows远程常见问题

    1.window2003远程桌面“已达最大连接数”解决:1)mstsc /v:(此处为服务器IP) /console   任务管理器注销已断开用户 mstsc /v:192.168.4.3 /cons ...

  5. 安装jenkins环境之jdk8

    Launchpad PPA Repositories是很有用的非ubuntu官方的第三方个人资源库,可以很方便地安装第三方软件. 但是在运行add-apt-repository命令时,有时会提示命令不 ...

  6. Scala 语法(一)

    (1)基本语法 变量 val var(可变变量): 数据类型 Byte,Char,Int,Short,Long,String(字符),Float,Double,Boolean(true,flase). ...

  7. Ubuntu12.04下zxing源码编译

    1.下载zxing源码 git clone https://github.com/15903016222/zxing-cpp.git 2.安装依赖工具cmake sudo apt-get instal ...

  8. 2017Facebook面试题改编“一面砖墙 ”

    题目:一面砖墙 这道题改编自网上Facebook去年的一道面试题,是hihoCoder的1494题(https://hihocoder.com/problemset/problem/1494) 这道题 ...

  9. Docker入门系列02

    上篇用一个简单的示例,简单的介绍了 Dockerfile 的配置及其相关的命令.这一篇会在上篇的示例程序里,继续添加新代码及如何将单元测试也放入 Image 建立过程内. 首先,我们需要建一个新的类库 ...

  10. 24-集成ASP.NETCore Identity采用EF

    1-增加IdentityServer4.AspNetIdentity nuget包 2- StartUp.cs启用增加相应的代码  .AddAspNetIdentity<ApplicationU ...