Poi基础

①:向excel输出东西

package poi;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

public class Demo1 implements Runnable{

    public static void main(String[] args) throws Exception {
        Demo1 demo1=new Demo1();
        Thread thread=new Thread(demo1);
        thread.start();

    }

    @Override
    public void run() {
        Workbook wb=new HSSFWorkbook();
        FileOutputStream outputStream = null;
        try {
            outputStream = new FileOutputStream("E://poi.xls");  //文件位置
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Sheet sheet=wb.createSheet();  //创建一页
        Row row=sheet.createRow(0);   //创建一行(第一行)
        Cell cell1=row.createCell(0);  //创建一列(第一列)
        Cell cell2=row.createCell(1);
        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        cell1.setCellValue(format.format(new Date()));
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        cell2.setCellValue(format.format(new Date()));
        System.out.println("!!!!");
        try {
            wb.write(outputStream);  //向工作簿写东西
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            try {
                outputStream.close();  // 关闭流
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

②:poi处理日期:

package poi;

import java.io.FileOutputStream;
import java.util.Calendar;
import java.util.Date;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

public class Demo2 {

    public static void main(String[] args) throws Exception {
        Workbook wb=new HSSFWorkbook();
        FileOutputStream outputStream=new FileOutputStream("E://poi2.xls");
        Sheet sheet=wb.createSheet();
        Row row=sheet.createRow(0);
        Cell cell=row.createCell(0);
        cell.setCellValue(new Date());

        //第一种方法
        CreationHelper helper=wb.getCreationHelper();
        CellStyle cellStyle=wb.createCellStyle();
        cellStyle.setDataFormat(helper.createDataFormat().getFormat("yyyy-MM-dd HH:mm:ss"));
        cell=row.createCell(1);
        cell.setCellValue(new Date());
        cell.setCellStyle(cellStyle);

        //第二种方法
        cell=row.createCell(2);
        cell.setCellValue(Calendar.getInstance());
        cell.setCellStyle(cellStyle);

        wb.write(outputStream);
        outputStream.close();

    }
}

③:利用for循环遍历

package poi;

import java.io.FileInputStream;

import org.apache.poi.hssf.usermodel.HSSFCell;
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;

public class Demo3 {

    public static void main(String[] args) throws Exception {
        FileInputStream inputStream=new FileInputStream("E://poi.xls");
        POIFSFileSystem fs=new POIFSFileSystem(inputStream);
        HSSFWorkbook wb=new HSSFWorkbook(fs);  //获取工作簿
        HSSFSheet sheet=wb.getSheetAt(0);  //获取第一页
        if(sheet==null){
            return;
        }
        //循环遍历所有的行
        for(int rowNum=0;rowNum<=sheet.getLastRowNum();rowNum++){
            HSSFRow row=sheet.getRow(rowNum);
            //如果行为空就跳过
            if(row==null){
                continue;
            }
            //循环遍历所有的列
            for(int cellNum=0;cellNum<=row.getLastCellNum();cellNum++){
                HSSFCell cell=row.getCell(cellNum);
                //如果行为列就跳过
                if(cell==null){
                    continue;
                }
                System.out.print(" "+getValue(cell));
            }
            System.out.println();
        }
    }

    //获取并处理单元格的值
    private static String getValue(HSSFCell hssfCell){
        if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){
            return String.valueOf(hssfCell.getBooleanCellValue()); //boolean类型
        }else if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){
            return String.valueOf(hssfCell.getNumericCellValue());  //数字型
        }else{
            return String.valueOf(hssfCell.getStringCellValue());  //字符串型
        }
    }
}

④:不用for循环遍历

package poi;

import java.io.FileInputStream;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.extractor.ExcelExtractor;

public class Demo4 {

    public static void main(String[] args) throws Exception {
        FileInputStream inputStream=new FileInputStream("E://poi.xls");
        POIFSFileSystem fs=new POIFSFileSystem(inputStream);
        HSSFWorkbook wb=new HSSFWorkbook(fs);

        ExcelExtractor extractor=new org.apache.poi.hssf.extractor.ExcelExtractor(wb);
        System.out.println(extractor.getText());
    }
}
时间: 2024-10-27 07:30:37

Poi基础的相关文章

java操作Excel的poi基础语法

创建一个简单的实列 package com.java.poi; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Workbook; import java.io.FileOutputStream; /** * @author nidegui * @create 2019-06-17 9:26 */ public class Test1 { public static voi

美团网基于机器学习方法的POI品类推荐算法

美团网基于机器学习方法的POI品类推荐算法 前言 在美团商家数据中心(MDC),有超过100w的已校准审核的POI数据(我们一般将商家标示为POI,POI基础信息包括:门店名称.品类.电话.地址.坐标等).如何使用这些已校准的POI数据,挖掘出有价值的信息,本文进行了一些尝试:利用机器学习方法,自动标注缺失品类的POI数据.例如,门店名称为"好再来牛肉拉面馆"的POI将自动标注"小吃"品类. 机器学习解决问题的一般过程:本文将按照:1)特征表示:2)特征选择:3)基

java web 开发三剑客 -------电子书

Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知Internet的目的是让各个net交互.所以,Internet实质上是将世界上各个国家.各个网络运营商的多个网络相互连接构成的一个全球范围内的统一网,使各个网络之间能够相互到达.各个国家和运营商构建网络采用的底层技术和实现可能各不相同,但只要采用统一的上层协议(TCP/IP)就可以通过Internet

Java基础系列19:使用JXL或者POI生成和解析Excel文件

一 简介 如题所示,当我们需要在Java中解析Excel文件时,可以考虑使用JXL或POI的API来解析. 二者的区别如下: jxl现在基本上没被维护了,最近一次更新时间还是几年前.相反,poi属于Apache开源项目的一部分,更新维护得比较好,最新稳定版 POI 3.15 是今年(2016年)9月更新的,同时poi可以支持更高版本的excel,而jxl只能支持excel2003以及之前的版本 小文件使用jxl解析效率比较高,但是因为支持的excel版本的限制,导致不能导出65535以上量级的数

零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(基础篇)

实现目的:爬取昆明市范围内的全部中学数据,包括名称.坐标. 先进入基础篇,本篇主要讲原理方面,并实现步骤分解,为python代码编写打基础. 因为是0基础开始,所以讲得会比较详细. 如实现目的所讲,爬取昆明市全部中学数据,就是获取百度地图上昆明市范围内所有关键字带中学的地理信息数据(兴趣点). 怎么把百度地图上的数据抓取下来呢? 以下是教程: 本篇目录如下: 1. 百度地图开放平台注册,AK获取 2.关于ak的说明 3.请求URL说明 4.百度地图坐标拾取器 5.以坐标范围获取兴趣点POI 6.

Excel poi API基础教程!

原文转子: http://blog.csdn.net/yellowd1/article/details/44628701 登录|注册     yellowd1的专栏 目录视图 摘要视图 订阅 程序员12月书讯,写书评领书啦~        Swift 问题与解答        免费的知识库,你的知识库 POI教程 2015-03-25 22:07 700人阅读 评论(0) 收藏 举报 分类: Java(41) 目录(?)[+] 文章转载自:易百教程 [http:/www.yiibai.com]

获取百度地图POI数据一(详解百度返回的POI数据)

POI是一切可以抽象为空间点的现实世界的实体,比如餐馆,酒店,车站,停车场等.POI数据具有空间坐标和各种属性,是各种地图查询软件的基础数据之一.百度地图作为国内顶尖的地图企业,其上具有丰富的POI数据,要获取其上的POI数据可以根据百度地图提供的API,但是这种方式有限制,能获取的数据极少.本文将详细介绍通过模拟HTTP请求的方式获取其上的POI数据. 当我们在百度地图的搜索框中通过输入关键字进行搜索时,这其实就是发送一个HTTP请求到百度的服务器,然后服务器返回数据. 打开网页的调试面板可以

JAVA基础知识整理 常用框架

JAVA反射---相关资料: 1.Java反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)检查类,接口,变量以及方法的信息 2.反射还可以让我们在运行期实例化对象,调用方法,通过调用get/set方法获取变量的值. 参考框架:Butterfly Persistence 构建 这里搜集了用来构建应用程序的工具. Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建.Maven优于Apache Ant.后者采用了一种

POI操作EXCEL(二)

原文转自:http://www.tqcto.com/article/code/295025.html java当初把核心处理设成Unicode,带来的好处是另代码适应了多语言环境.然而由于老外的英语只有26个字母,有些情况下,一些程序员用8 位的byte处理,一不小心就去掉了CJK的高位.或者是由于习惯在程序中采用硬编码,还有多种原因,使得许多java应用在CJK的处理上很烦恼.还好 在POI HSSF中考虑到这个问题,可以设置encoding为双字节. POI可以到www.apache.org