`

eclipse中POI操作EXCEL简述

阅读更多

2.1创建workbook

HSSFWorkbook wb = new HSSFWorkbook();

//使用默认的构造方法创建workbook

FileOutputStream fileOut = new FileOutputStream("workbook.xls");

//指定文件名

wb.write(fileOut);

//输出到文件

 

fileOut.close();

2.2创建一个sheet

HSSFWorkbook wb = new HSSFWorkbook();

HSSFSheet sheet1 = wb.createSheet("new sheet");

//workbook创建sheet

HSSFSheet sheet2 = wb.createSheet("second sheet");

//workbook创建另外的sheet

FileOutputStream fileOut = new FileOutputStream("workbook.xls");

wb.write(fileOut);

fileOut.close();

2.3创建cells

HSSFWorkbook wb = new HSSFWorkbook();

HSSFSheet sheet = wb.createSheet("new sheet");

//注意以下的代码很多方法的参数是short 而不是int 所以需要做一次类型转换

HSSFRow row = sheet.createRow((short)0);

//sheet 创建一行

HSSFCell cell = row.createCell((short)0);

//行创建一个单元格

cell.setCellValue(1);

 

//设定单元格的值

//值的类型参数有多中double ,String ,boolean,

row.createCell((short)1).setCellValue(1.2);

row.createCell((short)2).setCellValue("This is a string");

row.createCell((short)3).setCellValue(true);

// Write the output to a file

FileOutputStream fileOut = new FileOutputStream("workbook.xls");

wb.write(fileOut);

fileOut.close();

2.4创建日期cells

HSSFWorkbook wb = new HSSFWorkbook();

HSSFSheet sheet = wb.createSheet("new sheet");

HSSFRow row = sheet.createRow((short)0);

HSSFCell cell = row.createCell((short)0);

//设定值为日期

cell.setCellValue(new Date());

HSSFCellStyle cellStyle = wb.createCellStyle();

//指定日期显示格式

cellStyle.setDataFormat(HSSFDataFormat.getFormat("m/d/yy h:mm"));

cell = row.createCell((short)1);

cell.setCellValue(new Date());

//设定单元格日期显示格式

cell.setCellStyle(cellStyle);

FileOutputStream fileOut = new FileOutputStream("workbook.xls");

wb.write(fileOut);

fileOut.close();

2.5设定单元格格式

单元格格式的设定有很多形式包括单元格的对齐方式,内容的字体设置,单元格的背景色等,因为形式比较多,只举一些例子.以下的例子在POI1.5中可能会有所改变具体查看API.

// Aqua background

HSSFCellStyle style = wb.createCellStyle();

//创建一个样式

style.setFillBackgroundColor(HSSFCellStyle.AQUA);

//设定此样式的的背景颜色填充

style.setFillPattern(HSSFCellStyle.BIG_SPOTS);

//样式的填充类型。

//有多种式样如:

//HSSFCellStyle.BIG_SPOTS

//HSSFCellStyle.FINE_DOTS

//HSSFCellStyle.SPARSE_DOTS

style.setAlignment(HSSFCellStyle.ALIGN_CENTER );

//居中对齐

style.setFillBackgroundColor(HSSFColor.GREEN.index);

//设定单元个背景颜色

style.setFillForegroundColor(HSSFColor.RED.index);

//设置单元格显示颜色

HSSFCell cell = row.createCell((short) 1);

cell.setCellValue("X");

cell.setCellStyle(style);

目的:要在excel中画一条线。

public void drawMyLine()

{

HSSFWorkbook workbook = new HSSFWorkbook();

HSSFSheet sheet = workbook.createSheet(“excel文件名”);

// 创建HSSFPatriarch对象

HSSFPatriarch patriarch = sheet.createDrawingPatriarch();

 

drawLine(srcCol,   srcRow,   dstCol,   dstRow,   srcX,   srcY,   dstX,   dstY, patriarch);

 

saveExcelFile(workbook,”e:\aa.xlsx”,3);

}

 

/**

         * 从一个坐标点到另一个坐标点画一根线,内含偏移量修正代码。

         * @param srcCol 起点单元格列

         * @param srcRow 起点单元格行

         * @param dstCol 终点单元格列

         * @param dstRow 终点单元格行

         * @param srcX 起点单元格内X偏移量

         * @param srcY 起点单元格内Y偏移量

         * @param dstX 终点单元格内X偏移量

         * @param dstY 终点单元格内Y偏移量

         * @param patriarch 画线需要的对象  

         */

        privatevoid drawLine(int srcCol, int srcRow, int dstCol, int dstRow, int srcX, int srcY, int dstX, int dstY, HSSFPatriarch patriarch)

        {

            HSSFClientAnchor anchorPA = new HSSFClientAnchor(srcX, srcY, dstX, dstY, (short)srcCol, srcRow, (short)dstCol, dstRow);

            // 该画线函数存在严重问题,从同一点向其他方向画线会出现单元格内偏移量出现交错,因此写了如下代码进行修正。

            if (dstCol > srcCol && dstRow > srcRow)

            {

                // 保持原状

            }

            elseif (dstCol > srcCol && dstRow < srcRow)

            {

                anchorPA.setDy1(dstY);

                anchorPA.setDy2(srcY);

            }

            elseif (dstCol < srcCol && dstRow < srcRow)

            {

                anchorPA.setDx1(dstX);

                anchorPA.setDx2(srcX);

                anchorPA.setDy1(dstY);

                anchorPA.setDy2(srcY);

            }

            elseif (dstCol < srcCol && dstRow > srcRow)

            {

                anchorPA.setDx1(dstX);

                anchorPA.setDx2(srcX);

            }

            // 偏移量修正完毕。

 

            // 设置图形不随单元格改变

            anchorPA.setAnchorType(2);

            // 设置线段样式并画线

            HSSFSimpleShape line = patriarch.createSimpleShape(anchorPA);

            line.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE);

            line.setLineStyle(HSSFShape.LINESTYLE_SOLID);

            line.setLineWidth(6350);

        }

 

/**

     * 保存带有模板的Excel文件, 保存后需要将模板sheet页删除.

     * @param workbook 工作表

     * @param fileName 文件名

     * @param templateSheetNum 模版sheet的个数,保存excel前要移除这些模版

     * @throws Exception

     */

    publicstaticvoid saveExcelFile(HSSFWorkbook workbook, String fileName, int templateSheetNum) throws Exception

    {

        FileOutputStream output = null;

        try

        {

            // 输出流, PPT写到磁盘中

            output = new FileOutputStream(fileName);

 

            // 删除模板页

            for (int i = 0; i < templateSheetNum; i++)

            {

                workbook.removeSheetAt(0);

            }

            workbook.write(output);

            output.flush();

            output.close();

        }

        catch (Exception e)

        {

            throw e;

        }

        finally

        {

            try

            {

                // 关闭输出流

                if (output != null)

                {

                    output.close();

                }

            }

            catch (IOException e)

            {

                e.printStackTrace();

            }

        }

}

目的:在excel中嵌入一个图片

public void drawPicture()

{

HSSFClientAnchor anchorPA = new HSSFClientAnchor();

// 图形不随单元格改变

anchorPA.setAnchorType(2);

 

// 设置图形左上角的锚点,x = 20,y = 20处画图形

anchorPA.setCol1(20);

anchorPA.setRow1(20);

InputStream stream = this.getClass().getResourceAsStream(file);

byte[] data = newbyte[stream.available()];

stream.read(data);

stream.close();

 // 画图形

 patriarch.createPicture(anchorPA,workbook.addPicture(data, HSSFWorkbook.PICTURE_TYPE_JPEG)).resize();

 

FileOutputStream  output = new FileOutputStream(fileName);

workbook.write(output);

output.close();

}

目的:在指定的单元格写东西

// 设置站点名称以及单元格格式

HSSFSheet sheet = workbook.getSheetAt(0);

HSSFCellStyle style = workbook.createCellStyle();

style.setAlignment(CellStyle.ALIGN_LEFT);

           

// 站点名单元格偏移

int cellOffset = 2;

if (sheet.getRow(row + cellOffset) == null)

 {

  HSSFCell cell = sheet.createRow(row + cellOffset).createCell(col);

  cell.setCellValue(new HSSFRichTextString(neModel.getName()));

  cell.setCellStyle(style);

 }

 else

 {

  HSSFCell cell = sheet.getRow(row + cellOffset).createCell(col);

  cell.setCellValue(new HSSFRichTextString(neModel.getName()));

   cell.setCellStyle(style);

 }

分享到:
评论

相关推荐

    POI生成Excel POI操作Excel POI读取Excel POI类库

    2. **数据类型**:Excel中的数据类型包括字符串、数字、日期等,需要正确处理这些类型,防止数据丢失或转换错误。 3. **样式和格式**:POI允许设置单元格的样式,如字体、颜色、边框、对齐方式等,以增强Excel的...

    poi 操作excel模板

    本篇将深入探讨如何利用Apache POI来操作Excel模板,以及如何读取数据并将其填充到新生成的文件中,最终提供下载。 首先,你需要在项目中引入Apache POI的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下...

    java用poi读写excel表

    本文将详细介绍如何使用POI库在Java中进行Excel的读写操作,以及一个在Eclipse环境中运行的实例。 首先,我们需要了解Apache POI的基本概念。POI是Apache软件基金会的一个开源项目,它提供了Java API来处理...

    java 通过poi操作excel jar包

    6. **图表和图片**:可以创建和修改Excel中的图表,插入图片到工作表中。 7. **高级功能**:如条件格式、数据验证、合并单元格等。 在实际使用中,Java开发者首先需要将对应的JAR包添加到项目的类路径中,然后就...

    poi 操作excel案例 直接运行 适合参考

    标题中的“poi操作excel案例”指的是使用Apache POI库来处理Excel文件的示例项目。Apache POI是一个开源的Java库,它允许开发者创建、修改和显示Microsoft Office格式的文件,包括Excel工作簿(XLS和XLSX)。在这个...

    poi导入到eclipse

    在本文中,我们将学习如何将poi导入到eclipse中,并搭建好eclipse环境项目,以便更深一步地学习Java读取Microsoft Office的文件。 首先,需要下载poi的jar包。截至本文发表,poi最新版本是3.0.1,距离上一个Final...

    POI操作Excel完美生成水印

    本教程将深入探讨如何利用Apache POI来在Excel文件中完美地生成水印。水印通常用于标识文档的所有权或提供额外的安全层,而这里的水印是通过将文字转化为图片再添加到Excel工作表中实现的。 首先,我们需要了解...

    POI操作Excel常用方法总结

    这篇博客文章“POI操作Excel常用方法总结”可能详细介绍了如何利用Apache POI库在Java环境中读写Excel文件。以下是对该主题的一些关键知识点的详细说明: 1. **Apache POI介绍**: Apache POI是开源项目,提供了...

    poi操作excel表格导入和导出

    在“poi操作excel表格导入和导出”这个主题中,我们将深入探讨如何利用Apache POI进行Excel数据的处理,包括导入和导出。 一、Apache POI简介 Apache POI是一个开源项目,它提供了API来处理Microsoft Office格式的...

    POI操作Excel的封装

    在这个场景中,"POI操作Excel的封装"指的是对POI API进行的高级抽象和简化,以便于开发人员更方便地处理Excel文件。通过反射和约定,可以创建一个易于使用的API,隐藏底层复杂的POI细节。 反射是Java编程语言中的一...

    poi操作excel的Demo

    这个"poi操作excel的Demo"很可能是提供了一个使用Apache POI库来读取、写入或修改Excel文件的示例代码。下面将详细介绍Apache POI在处理Excel时的一些关键知识点。 1. **Apache POI概述**: Apache POI 是Java平台...

    poi操作excel所需完整jar包

    5. **公式和数据类型**:Apache POI支持处理Excel中的公式,你可以通过CellType类来指定单元格的数据类型,如STRING, NUMERIC, BOOLEAN, FORMULA等。 6. **事件模型(SXSSF)**:对于处理大量数据,Apache POI提供...

    POI向excel中插入图片

    以上就是使用Apache POI向Excel中插入图片的详细过程。实践中,你可以根据具体需求进行调整,例如动态插入多张图片或者在循环中批量处理。熟悉这些API和步骤后,你就可以自由地操纵Excel文档,实现更多复杂的功能。

    poi excel poi excel poi excel

    为了使用 POI 操作 Excel 文件,首先需要准备以下环境: 1. **JDK 版本**:至少需要 JDK 1.4 或更高版本。 2. **POI 库**:下载 POI 库,可以从 Apache 官方网站获取:...

    基于POI的Excel操作Java类

    为更方便的使用POI的API来操作Excel(2003)文件,对POI中针对Excel文件的读写进行了简单封装。此类中包含以下功能: 1.根据模板创建Excel文件 2.获取及更新Excel文件内容 3.创建、复制Sheet 4.设置Sheet名称 ... ...

    java_poi实现excel导入导出

    Java POI 的主要特点是可以在 Java 应用程序中读取、写入和操作 Office 文件。 2. Java POI 的组成 Java POI 由多个组件组成,每个组件负责处理不同的 Office 文件格式。以下是 Java POI 的主要组件: * POIFS ...

    POI操作Excel 调用高德API操作示例

    使用POI操作Excel调用高德地图API操作Excel示例

    POI导出Excel文件

    这两种方法都是在Java环境中操作Excel数据的有效方式。 首先,让我们详细了解一下Apache POI库。POI提供了一个API,允许开发者在Java应用程序中创建、修改和显示Microsoft Office文档。对于Excel,它支持HSSF(处理...

    java的poi生成excel图表demo

    在本示例中,我们将深入探讨如何利用POI库来生成Excel中的图表曲线,这对于数据可视化和报告生成非常有用。 1. **Apache POI介绍** Apache POI是一个开源项目,提供了API来处理Microsoft Office格式的文件。在Java...

Global site tag (gtag.js) - Google Analytics