java:Echarts,POI
1.Echarts:

demo.js:
function demo(selector){
var myEcharts=echarts.init(selector);
var option = {
title : {
text: '某站点用户访问来源',
subtext: '纯属虚构',
x:'center'
},
tooltip : {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
legend: {
orient: 'vertical',
left: 'left',
data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
},
series : [
{
name: '访问来源',
type: 'pie',
radius : '55%',
center: ['50%', '60%'],
data:[
{value:335, name:'直接访问'},
{value:310, name:'邮件营销'},
{value:234, name:'联盟广告'},
{value:135, name:'视频广告'},
{value:1548, name:'搜索引擎'}
],
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
myEcharts.setOption(option);
}
echarts.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"></meta>
<title></title>
<script type="text/javascript" src="echarts.common.min.js"></script>
<script type="text/javascript" src="demo.js"></script>
<script type="text/javascript">
function test(){ demo(document.getElementById("d")); }
</script>
</head>
<body>
<input type="button" id="test" value="测试" onclick="test()"/>
<div id="d" style="border:1px; height:500px; width:500px"></div>
</body>
</html>
2.POI:
POIDemo1.java:
package com.zzsxt.lee.poi.demo; import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.util.ArrayList;
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; /**
* @description 写入并创建xls文档
* @author Seven Lee
* @date 2017年11月7日 下午1:41:25
*
*/
public class POIDemo1 { public static void main(String[] args) {
// 指定目标路径和文件名
// windows的路径和linux以及mac的路径是不一样
// C:\\test\test.xls
// 一般情况下可以使用File.separator-->\,/
File file = new File("D:/123/kuang.xls");
try {
// 创建输出流(写入本地磁盘)
OutputStream outputStream = new FileOutputStream(file);
/**
* poi提供
*/
// 在目标路径创建目标名称的excel文件
// HSSFWorkbook:操作excel表格的
// 通过file的路径信息和文件名称,在目标路径创建出目标名称的excel文件
HSSFWorkbook workBook = new HSSFWorkbook();
// 创建excel工作表,并创建该工作页的主题名
// 创建表格的一个工作薄,并起名字为user
HSSFSheet sheet = workBook.createSheet("user"); // 从数据库中查询出了数据List<>
List<User> userList = new ArrayList<User>();
for (int j = 0; j < 10; j++) {
User user = new User("zhangsan" + j, "123456" + j);
userList.add(user);
}
User user = new User();
for (int i = -1; i < userList.size(); i++) {
/**
* 第一次for循环:
* i--> -1
* 第二次循环:
* i--> 0
*/
// sheet.createRow(i+1):创建第一行
// sheet.createRow(i+1):创建第二行
HSSFRow row = sheet.createRow(i+1);
for(int k = 0; k < user.getClass().getDeclaredFields().length; k++) {
if(i == -1) {
if(k == 0) {
continue;
}
row.createCell(k-1).setCellValue((user.getClass().getDeclaredFields()[k]).getName());
continue;
}
if(((user.getClass().getDeclaredFields()[k]).getName()).equals("serialVersionUID")) {
continue;
}
Field f = userList.get(i).getClass().getDeclaredFields()[k];
f.setAccessible(true);
row.createCell(k-1).setCellValue((String)f.get(userList.get(i)));
}
} // // 为工作表新增加一行(第一行)
// HSSFRow row1 = sheet.createRow(0);
// // 在指定的行上增加两个单元格
// row1.createCell(0).setCellValue("name");
// row1.createCell(1).setCellValue("password");
//
// // 为工作表新增加一行(第二行)
// HSSFRow row2 = sheet.createRow(1);
// row2.createCell(0).setCellValue("zhangsan");
// row2.createCell(1).setCellValue("123456"); // 调用输出流把excel表格写入硬盘中
workBook.write(outputStream);
// 关闭输出流
outputStream.close();
System.out.println("生成excel成功");
} catch (Exception e) {
e.printStackTrace();
} } }
POIDemo2.java:
package com.zzsxt.lee.poi.demo; import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.lang.reflect.Field; 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.poifs.filesystem.POIFSFileSystem; /**
* @description 通过java程序来从xls文档中读取出数据
* @author Seven Lee
* @date 2017年11月7日 下午3:50:18
*
*/
public class POIDemo2 { public static void main(String[] args) { try {
// 创建输入流,从磁盘中获取该文件的流信息
InputStream inputStream = new FileInputStream("D:/123/kuang.xls");
/**
* poi提供
*/
// 把从磁盘中读取出的流信息保存进缓冲区
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
// 创建POIFSFileSystem,对该文件进行解析
// 对该文件的流进行解析
POIFSFileSystem fileSystem = new POIFSFileSystem(bufferedInputStream);
// 从目标路径的目标名称获取excel的文件信息-->通过fileSystem进行获取
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(fileSystem);
// 根据工作薄的name获取到目标的excel信息
HSSFSheet sheet = hssfWorkbook.getSheet("user");
User user = new User();
for (int i = 0;; i++) {
if (i == 0) {
continue;
}
HSSFRow row = sheet.getRow(i);// 获取行信息
if (row != null) {
// 需要把所有的数据从excel中取出来
// getLastCellNum():excel表中有效单元格的列数
for (int j = 0; j < row.getLastCellNum(); j++) {
String excelValue = row.getCell(j).getStringCellValue();
Field[] fields = user.getClass().getDeclaredFields();
fields[j].setAccessible(true);
fields[j].set(user, excelValue);
}
bufferedInputStream.close();
} else {
bufferedInputStream.close();
return;
}
System.out.println(user);
} } catch (Exception e) {
e.printStackTrace();
} } }
ReadDocFile.java:
package com.zzsxt.lee.poi.demo; import java.io.FileInputStream;
import java.io.FileNotFoundException; import org.apache.poi.hwpf.extractor.WordExtractor; public class ReadDocFile { public static String readWord(String pathAndName) { FileInputStream in;
String text = null;
try {
in = new FileInputStream(pathAndName);
WordExtractor extractor = new WordExtractor(in);
text = extractor.getText();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return text;
} }
User.java:
package com.zzsxt.lee.poi.demo;
import java.io.Serializable;
public class User implements Serializable {
private static final long serialVersionUID = 5157419433803033003L;
private String name;
private String password;
public User() {
}
public User(String name, String password) {
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [name=" + name + ", password=" + password + "]";
}
}
pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zzsxt.lee.poi.demo</groupId>
<artifactId>excel_demo</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>excel_demo Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- 操作excel -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<!-- 操作work和ppt -->
<dependency>
<groupId>poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.1-FINAL</version>
</dependency>
</dependencies>
<build>
<finalName>excel_demo</finalName>
</build>
</project>
POIDemo3:创建excel 2007 xls格式
package com.zskj; import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set; import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
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.ss.usermodel.Font; public class Test {
public static void main(String[] args) { Set <String> set = new HashSet<String>();
set.add("123");
set.add("456");
set.add("789");
set.add("666");
set.add("777");
createExcel("D:\\test\\", "aa.xls","测试",set); }
/**
*
* @param path 文件存放路径
* @param fileName 文件名称
* @param sheetName 表名称
* @param set 数据
*/
public static void createExcel(String path, String fileName,String sheetName,Set<String> set) {
// 第一步创建workbook
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步创建sheet
HSSFSheet sheet = wb.createSheet(sheetName);
// 第三步创建行row:添加表头0行
HSSFRow row = sheet.createRow(0);
HSSFCellStyle style = wb.createCellStyle();
HSSFFont hssfFont = wb.createFont();
// 设置字体颜色
//hssfFont.setColor(HSSFColor.BLUE.index);
//字体大小
hssfFont.setFontHeightInPoints((short)11);
//字体
hssfFont.setFontName("宋体");
//粗体
hssfFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
style.setFont(hssfFont);
//居中
// style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 第四步创建单元格
HSSFCell cell = row.createCell(0); // 第一个单元格
cell.setCellValue("姓名");
cell.setCellStyle(style); cell = row.createCell(1); // 第二个单元格
cell.setCellValue("年龄");
cell.setCellStyle(style); // 第五步插入数据
Iterator<String> is = set.iterator();
int count = 1;
while(is.hasNext()){
//此处注意分开写
row = sheet.createRow(count);
HSSFCell hc = orow.createCell(0);
hc.setCellValue(is.next());
count++;
} // 第六步将生成excel文件保存到指定路径下
try {
FileOutputStream fout = new FileOutputStream(path + fileName);
wb.write(fout);
fout.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Excel文件生成成功...");
}
}
POIDemo4:创建excel xlsx格式:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set; import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; /**
*
* @param path 文件存放路径
* @param fileName 文件名称
* @param sheetName 表名称
* @param set 数据
*/
public static void createExcel(String fileName,String path,Set<String>set,String sheetName){
//创建工作簿
XSSFWorkbook xw = new XSSFWorkbook();
//创建表
XSSFSheet xf = xw.createSheet(sheetName);
//创建字体
XSSFFont xft = xw.createFont();
//设置字体
xft.setFontName("微软雅黑");
//创建样式
XSSFCellStyle xcs = xw.createCellStyle();
//第一行设置为列名
XSSFRow xr = xf.createRow(0);
XSSFCell xc = xr.createCell(0);
xc.setCellValue("姓名");
xcs.setFont(xft);
xc.setCellStyle(xcs);
Iterator<String> is = set.iterator();
int count = 1;
while(is.hasNext()){
xr = xf.createRow(count);
xc = xr.createCell(0);
xc.setCellValue(is.next());
xc.setCellStyle(xcs);
count++;
}
//合并单元格 参数说明:1:开始行 2:结束行 3:开始列 4:结束列
xf.addMergedRegion(new CellRangeAddress(count+2,count+2,0,100));
XSSFRow count2 = xf.createRow(count+2);
count2.createCell(0).setCellValue("总计"+(count-1));
File f = new File("D:\\test\\fontstyle.xlsx");
try {
FileOutputStream fos = new FileOutputStream(f);
xw.write(fos);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Excel创建完成......"); }
POIDemo4:读取excel xls格式:
import java.io.File;
import java.io.FileInputStream;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; // 读取,全部sheet表及数据
public static void showExcel() throws Exception {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(new File("D:/test/t1.xls")));
HSSFSheet sheet = null;
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) {
for (int k = 0; k < row.getLastCellNum(); k++) {// getLastCellNum,是获取最后一个不为空的列是第几个
if (row.getCell(k) != null) { // getCell 获取单元格数据
System.out.print(row.getCell(k) + "\t");
} else {
System.out.print("\t");
}
}
}
System.out.println(""); // 读完一行后换行
}
System.out.println("读取sheet表:" + workbook.getSheetName(i) + " 完成");
}
} // 读取,指定sheet表及数据 public static void showExcel2() throws Exception {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(new File("D:/test/t1.xls")));
HSSFSheet sheet = null;
int i = workbook.getSheetIndex("xt"); // sheet表名
sheet = workbook.getSheetAt(i);
for (int j = 0; j < sheet.getLastRowNum() + 1; j++) {// getLastRowNum
// 获取最后一行的行标
HSSFRow row = sheet.getRow(j);
if (row != null) {
for (int k = 0; k < row.getLastCellNum(); k++) {// getLastCellNum
// 是获取最后一个不为空的列是第几个
if (row.getCell(k) != null) { // getCell 获取单元格数据
System.out.print(row.getCell(k) + "\t");
} else {
System.out.print("\t");
}
}
}
System.out.println("");
}
}
java:Echarts,POI的更多相关文章
- Java:集合,Map接口框架图
Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合, ...
- Java:集合,Collection接口框架图
Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合, ...
- Java:多线程,java.util.concurrent.atomic包之AtomicInteger/AtomicLong用法
1. 背景 java.util.concurrent.atomic这个包是非常实用,解决了我们以前自己写一个同步方法来实现类似于自增长字段的问题. 在Java语言中,增量操作符(++)不是原子的,也就 ...
- Java:多线程,线程同步,同步锁(Lock)的使用(ReentrantLock、ReentrantReadWriteLock)
关于线程的同步,可以使用synchronized关键字,或者是使用JDK 5中提供的java.util.concurrent.lock包中的Lock对象.本文探讨Lock对象. synchronize ...
- Java:多线程,使用同步锁(Lock)时利用Condition类实现线程间通信
如果程序不使用synchronized关键字来保证同步,而是直接使用Lock对象来保证同步,则系统中不存在隐式的同步监视器,也就不能用wait().notify().notifyAll()方法进行线程 ...
- Java:多线程,线程池,使用CompletionService通过Future来处理Callable的返回结果
1. 背景 在Java5的多线程中,可以使用Callable接口来实现具有返回值的线程.使用线程池的submit方法提交Callable任务,利用submit方法返回的Future存根,调用此存根的g ...
- Java:集合,Arrays工具类用法
1. 描述 Arrays工具类提供了针对数组(Array)的一些操作,比如排序.搜索.将数组(Array)转换列表(List)等等,都为静态(static)方法: binarySearch - 使用二 ...
- Java:集合,对列表(List)中的自定义对象按属性(字段)排序(正序、倒序)的方法
1. 要求 对列表(List)中的自定义对象,要求能够按照对象的属性(字段)进行排序(正序.倒序). 如:用户对象(Member)有用户名(username).级别(level).出生日期(birth ...
- Java:多线程,CountDownLatch同步器
1. 背景 CountDownLatch类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 用给定的计数 初始化 CountDownLatch.由于调用了 countDown( ...
随机推荐
- 下载Mybatis源码
百度搜索关键字:Mybatis 点击第二个选项,为啥不是第一个?因为卡. 打开之后,长这个样子: 点击画红圈的位置,进入github源码库: 发现,进入的太深了.点击mybatis-3,进到外层目录, ...
- Mybatis 解决问题的记录与博客
问题:mybatis 空值映射的问题Mybatis在使用resultMap来映射查询结果中的列,如果查询结果中包含空值的列(不是null),则Mybatis在映射的时候,不会映射这个字段 https: ...
- Java-Base64Fiend工具类
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; impo ...
- Hadoop-No.2之标准文件格式
标准文件格式可以指文本格式,也可以指二进制文件类型.前者包括逗号分隔值(Comma-Separated Value,CSV和可扩展的标记语言文本(Extensible Markup Language. ...
- 2019CCPC秦皇岛(重现赛)-D
链接: http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1004&cid=872 题意: 给定一个正整数 n,要求判断 1 ...
- FZU-1901-Period 2(KMP)
链接: https://vjudge.net/problem/FZU-1901 题意: For each prefix with length P of a given string S,if S[i ...
- Jmeter的代理和cookie/session/Token令牌认证
Jmeter的代理服务器 1.启动Jmeter: 2.“测试计划”中添加“线程组”: 3.“工作台”中添加“HTTP代理服务器”: 4.配置代理服务器:Global Settings下面的端口配置:9 ...
- RestFul是啥
1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...
- Comet OJ - Contest #3 D 可爱的菜菜子 线段树+线性基
题意 给你一个长度为 \(n\) 的整数序列 \(a_1, a_2, \ldots, a_n\),你需要实现以下两种操作,每个操作都可以用四个整数 \(opt\ l\ r\ v\) 来表示: \(op ...
- dstat命令 来自: http://man.linuxde.net/dstat
来自: http://man.linuxde.net/dstat