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( ...
随机推荐
- D - A or...or B Problem
题意:给定A,B,问[A,B]里取任意个数按位或,结果有多少种. 思路:这题需要找出一个分界点,即找到最高位的B是1,A是0的位置x(最低位从0开始),那么对于所有OR的结果,x处要么是1要么是0,x ...
- python+Appium自动化:记录遇到的坑
1.打开 uiautomatorviewer同步的的时候突然报错 Error while obtaining UI hierarchy XML file: com.android.ddmlib.Syn ...
- web.xml中<welcome-file-list>标签不起作用
之前也都提到过,web.xml会通过<servlet>和<servlet-mapping>来确定url和指定contoller文件,乃至于jsp页面的联系. 但是有一个< ...
- MySQL 将数据文件分布到不同的磁盘
https://blog.csdn.net/john_chang11/article/details/51783632 [root@test1 temp]# vi /etc/my.cnf [mysql ...
- Django项目开发,XSS攻击,图片防盗链,图片验证码,kindeditor编辑器
目录 一.Django项目开发 1. 项目开发流程 2. auth模块的补充 (1)django的admin可视化管理页面 (2)将admin可视化管理页面的模型表显示成中文 (3)auth模块的用户 ...
- http 中文乱码
string RawUrl = request.Request.RawUrl; string cc= HttpUtility.ParseQueryString(RawUrl.Substring(1, ...
- MySQL索引(二)B+树在磁盘中的存储
MySQL索引(二)B+树在磁盘中的存储 回顾  上一篇文章<MySQL索引为什么要用B+树>讲了MySQL为什么选择用B+树来作为底层存储结构,提了两个知识点: B+树索引并不能直接找 ...
- Python3学习笔记(十八):文件上传和下载
文件上传 以人人网上传头像为例,用Fiddler抓取的上传头像接口报文如下 上传头像图片代码: import requests upload_url = 'http://upload.renren.c ...
- AtCoder AGC038F Two Permutations (网络流、最小割)
题目链接 https://atcoder.jp/contests/agc038/tasks/agc038_f 题解 好题. 首先观察到一个性质,对于排列\(P\), 其所形成的每个轮换中的点\(A_i ...
- [JZOJ5400]:Repulsed(贪心+树形DP)
题目描述 小$w$心里的火焰就要被熄灭了. 简便起见,假设小$w$的内心是一棵$n-1$条边,$n$个节点的树. 现在你要在每个节点里放一些个灭火器,每个节点可以放任意多个. 接下来每个节点都要被分配 ...