POI

使用这套API操作Excel时,将对Excel进行全程锁定,所以不能有其他程序访问同一文件.

package poi;
 
import java.io.FileOutputStream;
import java.util.Calendar;
import java.util.Date;
 
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFFont;
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;
import org.apache.poi.hssf.util.HSSFColor;
 
public class App {
 
    public static void main(String[] args) {
        try {
            FileOutputStream fos = new FileOutputStream("d:/poi.xls");
            // 建立工作空间
            HSSFWorkbook wb = new HSSFWorkbook();
            // 创建工作表
            HSSFSheet sheet = wb.createSheet("first Sheet");
            wb.createSheet("second Sheet");
            // 创建行
            HSSFRow row = sheet.createRow(0);
            // 创建单元格
            HSSFCell cell = row.createCell(0);
            // 设置不同的值进行比较
            cell.setCellValue(true);// boolean
            row.createCell(1).setCellValue(Calendar.getInstance());// 日历类型
            row.createCell(2).setCellValue(new Date());// date类型
            row.createCell(3).setCellValue(123456789.987654321);// double
            String str = "sadfasdfsadfsadfsdddddddddddffffffffffffffffdsadf";
            row.createCell(4).setCellValue(new HSSFRichTextString(str));// String
 
            // 格式化单元格数据
            HSSFCellStyle style = wb.createCellStyle();// 创建样式对象
            HSSFDataFormat format = wb.createDataFormat();// 创建数据格式对象
            style.setDataFormat(format.getFormat("yyyy-MM-dd hh:mm:ss"));
            row.getCell(1).setCellStyle(style);
            row.getCell(2).setCellStyle(style);
 
            style = wb.createCellStyle();
            style.setDataFormat(format.getFormat("#,###.0000"));
            row.getCell(3).setCellStyle(style);
 
            // 设置列宽,单位int:是点的1/20
            sheet.setColumnWidth(1, 5000);
            sheet.autoSizeColumn((short) 2);// 自动列宽
            sheet.autoSizeColumn((short) 4);
 
            // 设置文本的对齐方式
            row = sheet.createRow(1);
            row.createCell(0).setCellValue(new HSSFRichTextString("左上"));
            row.createCell(1).setCellValue(new HSSFRichTextString("中中"));
            row.createCell(2).setCellValue(new HSSFRichTextString("右下"));
            // #左上
            style = wb.createCellStyle();
            style.setAlignment(HSSFCellStyle.ALIGN_LEFT);// 水平左
            style.setVerticalAlignment(HSSFCellStyle.VERTICAL_TOP);// 水平左
            row.getCell(0).setCellStyle(style);
            // #中中
            style = wb.createCellStyle();
            style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
            style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
            row.getCell(1).setCellStyle(style);
            // #左上
            style = wb.createCellStyle();
            style.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
            style.setVerticalAlignment(HSSFCellStyle.VERTICAL_BOTTOM);
            row.getCell(2).setCellStyle(style);
 
            // 行高
            row.setHeight((short) 2000);
 
            // 字体颜色和大小
            HSSFFont font = wb.createFont();
            font.setFontHeightInPoints((short) 30);// 字体高度
            font.setItalic(true);// 斜体
            font.setColor(HSSFColor.RED.index);// 字体颜色
 
            style = row.getCell(0).getCellStyle();
            style.setFont(font);// 为单元格样式应用字体
            sheet.setColumnWidth(0, (short) 5000);
 
            // 设置旋转
            style.setRotation((short) 60);
 
            // 设置边框样式
            row = sheet.createRow(2);
            cell = row.createCell(0);
            style = wb.createCellStyle();
            style.setTopBorderColor(HSSFColor.RED.index);// 上边框
            style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM_DASH_DOT_DOT);
            cell.setCellStyle(style);
 
            // 计算列
            row = sheet.createRow(3);
            row.createCell(0).setCellValue(12);
            row.createCell(1).setCellValue(13);
            row.createCell(2).setCellValue(14);
 
            cell = row.createCell(3);
            cell.setCellFormula("average(A4:C4)");
 
            row = sheet.createRow(4);
            row.createCell(0).setCellValue(22);
            row.createCell(1).setCellValue(23);
            row.createCell(2).setCellValue(24);
            cell = row.createCell(3);
            cell.setCellFormula("sum(A4:C5)");
 
            // 整体移动行
            // sheet.shiftRows(2, 4, -1);
 
            // 拆分窗格
            // 1000:x轴拆分距离 2000:y轴拆分距离
            // 1:右侧窗格开始显示的列的索引数 2:下策窗口开始显示的行的索引的数
            // 2:哪个面板去激活
            // sheet.createSplitPane(1000, 2000, 1, 2, 2);
 
            // 冻结窗格
            // 1:冻结的列数 2:冻结行数 3:右侧窗格从第几列开始显示 4:下侧窗格从第几行开始显示
            // sheet.createFreezePane(1, 2, 3, 4);
            wb.write(fos);
            fos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
时间: 2024-08-26 18:22:51

POI的相关文章

ios百度地图poi搜索,如何实现

问题描述 ios百度地图poi搜索,如何实现 进行poi城市搜索,一次最多事50个,可能设置100或者更多显示出来,并且关键字也是可以多个关键字 解决方案 百度地图-实现POI的搜索(搜索周边)百度地图的定位和poi搜索Android 百度地图-实现POI的搜索(搜索周边)

使用Lucene索引和检索POI数据

1.简介 关于空间数据搜索,以前写过<使用Solr进行空间搜索>这篇文章,是基于Solr的GIS数据的索引和检索. Solr和ElasticSearch这两者都是基于Lucene实现的,两者都可以进行空间搜索(Spatial Search),在有些场景,我们需要把Lucene嵌入到已有的系统提供数据索引和检索的功能,这篇文章介绍下用Lucene如何索引带有经纬度的POI信息并进行检索. 2.环境数据 Lucene版本:5.3.1 POI数据库:Base_Station测试数据,每条数据主要是I

poi 排序 excel-poi怎么排序excel文件

问题描述 poi怎么排序excel文件 大家好,我正在做xml转excel,由于抓换后的excel文件需要排序,我找了很久没有找到poi中有相关方法,请问有谁知道怎么做,,谢谢

导出大数据量excel,用POI

问题描述 导出大数据量excel,用POI 需要导出的数据量可能非常大(超过10W条),而且要照顾到没装07Excel的机器,不能用SXSSFworkbook.鉴于一个sheet页最多65000多条记录,那么大数据就需要多个sheet页.由于导出前要先查数据库,是应该一次查出所有数据然后导出还是分次查询?每次查询65000条数据? 解决方案 这么大的文件,excel 2003未必能打开.建议分页存入多个excel文件. 解决方案二: 看速度和效率了,分次是不是速度还快点

excel表-poi如何判断excel单元格为合并单元格

问题描述 poi如何判断excel单元格为合并单元格 今天在用poi读取excel表格的时候发现使用cell.getArrayFormulaRange()并不能返回这个单元格的边界.请问该如何判断单元格为合并单元格并获取合并单元格的行数列数

使用poi和jfreechart生成excel图表图片

最近项目在频繁的操作excel,里边涉及到很多和图表有关的东西.有时候需要使用java操作excel自带的图标,比较复杂的我们都是使用excel模板的形式实现. 除此之外,也有一些功能只需要生成对应的图标样式的图片就好,我们实现的时候主要用了两种方式,一种就是由前台生成图片base64码,然后后台解码生成图片插入到excel,但是这种方式有 一定的局限性,也就是当某些功能需要后台定时生成excel的时候,就无法获取这个图片. 于是我们采用了另一种方法,也就是是用jfreechart生成对应的图片

java中使用poi结合Struts 2来导出execl表格

第一步写action方法: public String exportActiveExcel() { String name ="活跃度列表.xls"; try { name = java.net.URLEncoder.encode(name, "UTF-8"); fileName = new String(name.getBytes(), "iso-8859-1"); } catch (UnsupportedEncodingException e

使用Apache POI和OpenOffice API在Linux中统计Office文档的页数

Apache POI 介绍 Apache POI 是一套用于访问微软 Office 格式文档 (Word, Excel and PowerPoint) 的 Java API.其中用于操作 Excel 格式文件的 API 是 HSSF,用于操作 Word 格式文件的 API 是 HWPF 以及用于操作 PowerPoint 格式文件的 API 是 HSLF. POI 的官方网站是 http://poi.apache.org,用户可以先从这里下载最新的版本 3.6, 下载解压后里面有三个 jar 包

使用Apache POI读取Excel文件

Apache POI是Apache软件基金会的开放源码函式库,用来帮助Java程序读写Microsoft Office的格式档案.POI提供了下面这几种类型对Microsoft Office的格式档案进行解析: HSSF - 提供读写Microsoft Excel XLS格式档案的功能. XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能. HWPF - 提供读写Microsoft Word DOC格式档案的功能. HSLF - 提供读写Microsoft

Android中使用百度地图API:城市POI搜索-获取所有结果

本文主要讲解如何通过百度地图API搜索得到一个城市里的所有POI.这里有必要对"所有"这个词进行强 调一下,以便引起重视,之所以这样说,是因为在搜索POI时,默认仅返回一页的搜索结果10条,那么如何才 能得到所有的搜索结果呢?其实baidu map api是提供了相关的方法,但我发现有相当多的网友都在问这个问 题,所以有必要讲解演示一下. 先讲一下什么称之为"城市POI搜索"?它与我们在上一篇文章([011] 百 度地图API之POI搜索-发现你身边的兴趣点,如超市