java基础以及操作Excle
今天把会经常用的几个集合的迭代方法又练习了一下,放在这里,经常复习!
map集合迭代
/*** 迭代map【1】*/
for (Integer key : map.keySet()) {//迭代key值
for (String value : map.values()) {//跌打value值
System.out.println("迭代map【1】" + key + ":" + value);
}
// System.out.println("key\t"+key);
}
/*** 迭代map【2】*/
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println("迭代map【2】" + entry.getKey() + ":" + entry.getValue());
}
/*** 迭代map【3】*/
Iterator<Map.Entry<Integer, String>> entries = map.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<Integer, String> entry = entries.next();
System.out.println("迭代map【3】" + entry.getKey() + ":" + entry.getValue());
}
List集合迭代
List list = new ArrayList();
list.add("");
list.add("");
list.add("");
list.add("");
int size = list.size();
System.out.println(size);
for(Object li:list){
System.out.println("foreach迭代List集合\t\t"+li);
} Iterator iterator = list.iterator();
while (iterator.hasNext()){
System.out.println("Iterator迭代List集合\t\t"+iterator.next());
}
工作需要,经常需要操作本地的Excle,下面总结了一下创建Excle
JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为它是使用Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。
package yh.com.excle; import jxl.Workbook;
import jxl.format.*;
import jxl.format.Alignment;
import jxl.write.*;
import jxl.write.Colour;
import jxl.write.biff.RowsExceededException; import java.io.File;
import java.io.IOException; /**
* Created by vincce on 2015/11/9.
*/
public class WriteMsgToExcle { private static final String filePath = "E:\\study\\test\\createExcle.xls"; public static void main(String[] args) {
createExcle();
} /**
* 创建Excle到本地
*/
public static void createExcle(){ try {
WritableWorkbook writableWorkbook = Workbook.createWorkbook(new File(filePath));//在指定目录下创建Excl
WritableSheet sheet = writableWorkbook.createSheet("myFirst", );//创建一个sheet ,参数含义分别是 sheet名字 该Excle文件中第一个sheet
sheet.setRowView(, , false);//设置第一行的高度 WritableCellFormat writableCellFormat = new WritableCellFormat();
writableCellFormat.setBackground(Colour.GRAY_25);//设置背景色
writableCellFormat.setAlignment(Alignment.CENTRE);//设置居中显示 WritableFont color = new WritableFont(WritableFont.ARIAL);//选择字体
color.setColour(Colour.GOLD);//设置字体颜色为金黄色
WritableCellFormat colorFormat = new WritableCellFormat(color); //第一行
// Label l1 = new Label(0,0,"name",colorFormat);//创建单元格 参数含义分别是 列坐标,行坐标 内容,字体颜色
Label l1 = new Label(,,"name",writableCellFormat);//创建单元格 参数含义分别是 列坐标,行坐标 内容,背景色
sheet.addCell(l1);
// Label l2 = new Label(1,0,"sex",colorFormat);
Label l2 = new Label(,,"sex",writableCellFormat);
sheet.addCell(l2);
// Label l3 = new Label(2,0,"age",colorFormat);
Label l3 = new Label(,,"age",writableCellFormat);
sheet.addCell(l3);
// Label l4 = new Label(3,0,"score",colorFormat);
Label l4 = new Label(,,"score",writableCellFormat);
sheet.addCell(l4); //第二行
Label l5 = new Label(,,"john");
sheet.addCell(l5);
Label l6 = new Label(,,"male");
sheet.addCell(l6);
Label l7 = new Label(,,"");
sheet.addCell(l7);
Label l8 = new Label(,,"");
sheet.addCell(l8); //将创建的内容写入到输出流,并关闭输出流
writableWorkbook.write();
writableWorkbook.close(); } catch (IOException e) {
e.printStackTrace();
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
} }
}
需要依赖
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.</version>
</dependency>
读取Excle中的某一列
public static void test2(String path){
File file = new File(path);
Workbook workbook;
try {
workbook = Workbook.getWorkbook(file);
Sheet sheet = workbook.getSheet();//获取第一个sheet
Cell[] cell = sheet.getColumn();//获取第一列中的值
int len = cell.length;//共有多少行
Map<Integer,String> map = new HashMap();
for(int i = ;i<len;i++){
Cell cell1 = cell[i];
System.out.println("第"+(i+Integer.parseInt(""))+"行\t"+cell1.getContents()+"\t"+"'"+cell1.getContents()+"',");
map.put(i,cell1.getContents());
// System.out.println("select * from axa_user where id="+"'"+cell1.getContents()+"',");
}
System.out.println("总共有"+len+"行");
System.out.println(map.toString());
/*
Sheet sheet1 = workbook.getSheet(1);//读取第二个sheet中的内容
Cell[] cell1 = sheet1.getColumn(0);//获取第一列中内容
Cell[] cell2 = sheet1.getColumn(1);//获取第二列中内容
Map<Integer,String> map1 = new HashMap<Integer, String>();
for(int len1=0;len1<cell1.length;len1++){
Cell c1 = cell1[len1];
map1.put(len1,c1.getContents());
}
Map<Integer,String> map2 = new HashMap<Integer, String>();
for(int len2=0;len2<cell2.length;len2++){
Cell c2 = cell2[len2];
map2.put(len2,c2.getContents());
}
Map<Integer,String> map3 = new HashMap<Integer, String>();
for(Map.Entry<Integer,String> entry2:map2.entrySet()){
for(Map.Entry<Integer,String> entry1:map1.entrySet()){
if(entry2.getValue().equals(entry1.getValue())){
map3.put(entry1.getKey(),entry1.getValue());
}
}
}
System.out.println(cell1.length);
System.out.println(cell2.length);
System.out.println("map1\t"+map1.toString());
System.out.println("map2\t"+map2.toString());
System.out.println("map3\t"+map3.toString());
*/
} catch (IOException e) {
e.printStackTrace();
} catch (BiffException e) {
e.printStackTrace();
}
}
java基础以及操作Excle的更多相关文章
- Java基础-线程操作共享数据的安全问题
Java基础-线程操作共享数据的安全问题 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.引发线程安全问题 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运 ...
- Java基础面试操作题: 获取 1-20 之间的随机数,共计 20 个,要求不能重复 获取 1-20 之间的随机数,共计 10 个,要求不能重
package com.swift; import java.util.HashSet; import java.util.Random; import java.util.Set; public c ...
- Java基础面试操作题:读取该文件内容,并按照自然顺序排序后输出到 另一个文件中
package com.swift; import java.io.FileInputStream; import java.io.FileNotFoundException; import java ...
- Java基础面试操作题: File IO 文件过滤器FileFilter 练习 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件
package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...
- Java基础面试操作题:线程同步代码块 两个客户往一个银行存钱,每人存三十次一次存一百。 模拟银行存钱功能,时时银行现金数。
package com.swift; public class Bank_Customer_Test { public static void main(String[] args) { /* * 两 ...
- Java基础面试操作题: 线程问题,写一个死锁(原理:只有互相都等待对方放弃资源才会产生死锁)
package com.swift; public class DeadLock implements Runnable { private boolean flag; DeadLock(boolea ...
- Java基础面试操作题:Java代理工厂设计模式 ProxyFactory 有一个Baby类,有Cry行为,Baby可以配一个保姆 但是作为保姆必须遵守保姆协议:能够处理Baby类Cry的行为,如喂奶、哄睡觉。
package com.swift; public class Baby_Baomu_ProxyFactory_Test { public static void main(String[] args ...
- java 基础 —— 文件操作(File)
1. 基本成员: File.separator public class File implements Serializable, Comparable<File> { private ...
- Java基础复习笔记系列 七 IO操作
Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...
随机推荐
- FMDB使用的数据库的三种形式
FMDB使用的数据库的三种形式 FMDB是iOS平台下一款优秀的第三方SQLite数据库框架.它以Objective-C的方式封装了SQLite的C语言API.使用起来,它更加面向对象,避免冗余的 ...
- codevs贪吃的九头龙
传说中的九头龙是一种特别贪吃的动物.虽然名字叫“九头龙”,但这只是说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的总数会远大于九,当然也会有旧头因衰老而自己脱落.有一天,有M 个 ...
- 谈谈 ServletConfig 和 ServletContext
目录 一.ServletConfig 和 ServletContext 的概念 二.ServletConfig 和 SerlvetContext 代码表示 一.ServletConfig 和 Serv ...
- zerorpc的安装
1.简介及安装 rpc使构建分布式系统简单许多,在云计算的实现中有很广泛的应用 rpc可以是异步的 python实现rpc,可以使用标准库里的SimpleXMLRPCServer,另外zerorpc是 ...
- 使用TypeDescriptor给类动态添加Attribute【转】
源文 : http://www.cnblogs.com/bicker/p/3326763.html 给类动态添加Attribute一直是我想要解决的问题,从msdn里找了很久,到Stack Overf ...
- 何时才使用https访问项目
利用keytools生产证书,然后将证书导入到jvm和tomcat中,则访问该项目的时候就以https访问
- 关于 AlphaGo 论文的阅读笔记
这是Deepmind 公司在2016年1月28日Nature 杂志发表论文 <Mastering the game of Go with deep neural networks and tre ...
- 兔子--html,js,php,ASP,ASP.NET,JSP的关系
html是超文本链接语言.是静态的.显示在client.仅仅用HTML做出来的网页是静态网页.没不论什么交互功能. JS是一种基于对象和事件驱动的脚本语言,执行在client.是一种比較简单的编程语言 ...
- 转:学习linux驱动经典书籍
Linux驱动学习的最大困惑在于书籍的缺乏,市面上最常见的书为<linux_device_driver 3rd Edition>,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本 ...
- ElasticSearch 分页检索
在ElasticSearch的多索引和多类别里说到我们在集群中有14个文档匹配我们的(空)搜索语句.单数仅仅有10个文档在hits数组中.我们怎样看到其它文档? 和SQL使用LIMITkeyword返 ...