`
zengshaotao
  • 浏览: 792118 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java excel

    博客分类:
  • java
 
阅读更多

package excel;

import java.io.FileOutputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import jxl.*;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.CellFormat;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class JXLExample {

    /**
     * @return
     * @author shaotao.zeng
     * @exception
     * @desc 引用的文件路径存在时,进行的是修改操作
     */
    public static void main(String[] args) {
        // 准备设置excel工作表的标题
        String[] title = {"编号","产品名称","产品价格","产品数量","生产日期","产地","是否出口"};
        try {
            // 获得开始时间
            long start = System.currentTimeMillis();
            // 输出的excel的路径
            String filePath = "D:\\zengst.xls";
            // 声明Excel工作薄类型
            WritableWorkbook wwb;
            // 新建立一个xls文件,即在C盘下生成zengst.xls
            OutputStream os = new FileOutputStream(filePath);
            // 通过流的形式创建Excel工作薄
            wwb=Workbook.createWorkbook(os);
            // 添加工作表并设置Sheet的名字
            WritableSheet sheet = wwb.createSheet("产品清单", 0);
            WritableSheet sheet1 = wwb.createSheet("产品清单一", 1);
            Label label;//相当于一个sheet的小格,一个容器(文本型的节点)
            for(int i=0;i<title.length;i++){
                // Label(x,y,z)其中x代表单元格的第x+1列,第y+1行, 单元格的内容是z
                // 在Label对象的子对象中指明单元格的位置和内容
                label = new Label(i,0,title[i]);
                // 将定义好的单元格添加到工作表中
                sheet.addCell(label);
            }
            // 下面是填充数据
            /*
             * 保存数字到单元格,需要使用jxl.write.Number
             * 必须使用其完整路径,否则会出现错误
             * */
            // 填充产品编号 列在前,行在后
            jxl.write.Number number = new jxl.write.Number(0,1,20071001);
            sheet.addCell(number);
            // 填充产品名称
            label = new Label(1,1,"洽洽瓜子");
            sheet.addCell(label);
            /*
             * 定义对于显示金额的公共格式
             * jxl会自动实现四舍五入
             * 例如 2.456会被格式化为2.46,2.454会被格式化为2.45
             * */
            jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
            jxl.write.WritableCellFormat wcf = new jxl.write.WritableCellFormat(nf);
            // 填充产品价格
            jxl.write.Number nb = new jxl.write.Number(2,1,2.45,wcf);
            sheet.addCell(nb);
            // 填充产品数量
            jxl.write.Number numb = new jxl.write.Number(3,1,200);
            sheet.addCell(numb);
            /*
             * 定义显示日期的公共格式
             * 如:yyyy-MM-dd hh:mm
             * */
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String newdate = sdf.format(new Date());
            // 填充出产日期
            label = new Label(4,1,newdate);
            sheet.addCell(label);
            // 填充产地
            label = new Label(5,1,"江西上饶");
            sheet.addCell(label);
            /*
             * 显示布尔值
             * */
            jxl.write.Boolean bool = new jxl.write.Boolean(6,1,true);
            sheet.addCell(bool);
            /*
             * 合并单元格
             * 通过writablesheet.mergeCells(int x,int y,int m,int n);来实现的
             * 表示将从第x+1列,y+1行到m+1列,n+1行合并
             *
             * */
            sheet.mergeCells(0,3,2,3);
            label = new Label(0,3,"合并了三个单元格");
            sheet.addCell(label);
            /*
             *
             * 定义公共字体格式
             * 通过获取一个字体的样式来作为模板
             * 首先通过web.getSheet(0)获得第一个sheet
             * 然后取得第一个sheet的第二列,第一行也就是"产品名称"的字体
             * */
            CellFormat cf = wwb.getSheet(0).getCell(1, 0).getCellFormat();
            WritableCellFormat wc = new WritableCellFormat();
            // 设置居中
            wc.setAlignment(Alignment.CENTRE);
            // 设置边框线
            wc.setBorder(Border.ALL, BorderLineStyle.THIN);
            // 设置单元格的背景颜色
            wc.setBackground(jxl.format.Colour.RED);
            label = new Label(1,4,"字体",wc);
            sheet.addCell(label);

            // 设置字体
            jxl.write.WritableFont wfont = new jxl.write.WritableFont(WritableFont.createFont("隶书"),20);
            WritableCellFormat font = new WritableCellFormat(wfont);
            label = new Label(2,6,"隶书",font);
            sheet.addCell(label);
           
            // 写入数据
            wwb.write();
            // 关闭文件
            wwb.close();
            long end = System.currentTimeMillis();
            System.out.println("----共用的时间是:"+(end-start)/1000);
        } catch (Exception e) {
            System.out.println("--------出现异常---------");
            e.printStackTrace();
        }
    }

}

分享到:
评论

相关推荐

    java excel转html

    Java提供了多种库来实现这样的功能,这些库通常能够处理不同版本的Excel文件,包括32位和64位系统上的文件。 首先,我们需要了解Java中的主要库,如Apache POI和JExcelAPI,它们是用于读取和操作Excel文件的流行...

    Java Excel Api及详细教程

    Java Excel API是一个强大的工具,允许Java开发者方便地读取、写入和操作Microsoft Excel文件。在Eclipse这样的集成开发环境中,使用Java Excel API可以轻松处理各种Excel数据操作任务。本教程将详细介绍如何在...

    javaEXCEL

    JavaExcel是一个广泛使用的术语,指的是使用Java处理Excel文件的相关技术,特别是Apache POI库。Apache POI是一个开源项目,允许Java开发者读取、写入和修改Microsoft Office格式的文件,其中包括Excel(.xlsx和.xls...

    Java Excel比较代码 poi

    Java Excel比较代码主要涉及到的是Apache POI库的使用,这是一个强大的API,允许Java开发者读取、写入和修改Microsoft Office格式的文件,包括Excel。在本项目中,它被用来对比两个Excel工作表中的数据差异。 ...

    JavaExcel

    JavaExcel是一个纯Java实现的Excel操作组件,它允许开发者在Java应用程序中轻松地读取、创建和修改Excel文件。这个组件通常被称为JExcelAPI,它提供了丰富的API接口,使得处理Excel数据变得简单而高效。JExcelAPI...

    java excel 生成6级级联

    java excel 生成6级级联。加一个poi.jar就行。

    基于SpringBoot、JDBC、Mybatis和EasyExcel的Java Excel批量导入导出设计源码

    该项目是一款基于SpringBoot、JDBC、Mybatis和EasyExcel的Java Excel批量导入导出解决方案源码,包含22个文件,其中包括10个Java源文件、2个Markdown文件、2个XML文件、1个Git忽略文件、1个JAR包文件、1个属性文件、...

    JAVA EXCEL API简介

    Java Excel API 是一个开源项目,专门用于在Java环境中处理Excel文件。这个API使得开发者无需依赖Windows操作系统,就能在任何平台上创建、读取和修改Excel文件。由于它是用Java编写的,因此非常适合在Web应用程序中...

    JAVA Excel API教程.pdf

    ### JAVA Excel API教程知识点概述 #### 一、Java Excel API简介 Java Excel API是一种用于处理Microsoft Excel文件(.xls和.xlsx格式)的强大工具。通过Java Excel API,开发人员能够轻松地在Java应用程序中读取、...

    java Excel导出导入

    java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入

    javaExcel大数据导出

    "javaExcel大数据导出"这个话题涉及到的主要知识点包括:Java与Excel的交互、大数据处理策略、性能优化以及内存管理。 1. **Java与Excel的交互**: Java可以通过多种库来实现与Excel的交互,如Apache POI、...

    java Excel相关处理 java Excel相关处理

    java Excel相关处理 java Excel相关处理java Excel相关处理 java Excel相关处理java Excel相关处理 java Excel相关处理java Excel相关处理 java Excel相关处理java Excel相关处理 java Excel相关处理java Excel相关...

    java Excel写入导出

    Java Excel写入与导出是Java开发者在处理数据时经常遇到的任务,特别是在数据分析、报表生成或者数据导入导出等场景。这项技术主要依赖于Apache POI库,它是一个开源项目,提供了读取、写入Microsoft Office格式文件...

    JavaExcel导出示例

    本示例主要关注如何使用Apache POI库来实现JavaExcel导出功能。Apache POI是一个开源项目,它提供了读取和写入Microsoft Office格式文件的能力,包括Excel。 首先,你需要在你的项目中引入Apache POI依赖。如果你...

    java excel api

    Java Excel API,通常指的是jxl库,是一个广泛使用的开源Java库,用于读写Microsoft Excel文件。这个库使得在Java程序中处理Excel数据变得极其便捷,无论是读取现有的工作簿、创建新的工作簿,还是修改现有表格,jxl...

    java Excel工具类与LIB

    Java Excel工具类与LIB指的是在Java编程环境中处理Excel文件的一系列方法和库。这些工具能够帮助开发者轻松地创建、读取、修改Excel文件,并且能够将Excel数据转换为Java对象,反之亦然。这里提到的"XLSUtils.java...

    java excel tree

    在Java编程领域,生成Excel报表是一项常见的任务,尤其在数据可视化和组织结构管理中。"java excel tree"这个主题正是关于如何使用Java来创建一个基于Excel的组织架构报表,它利用了组合模式和一系列算法来实现自动...

    免费Java Excel类库-Free Spire.XLS for Java-2.2.0

    Free Spire.XLS for Java是一款专门针对Java平台的开源Excel处理类库,它允许开发者在Java应用程序中创建、读取、修改和导出Excel文件。这个版本为2.2.0,提供了丰富的功能和易用的API,使得与Excel文件交互变得更加...

    JAVA Excel日历控件

    Java Excel日历控件是一种在Java应用程序中用于展示和交互日期选择的组件,它使得用户能够方便地在GUI(图形用户界面)中处理日期相关的任务。这种控件通常被集成到Java Swing或JavaFX框架中,以提供类似Excel中日历...

Global site tag (gtag.js) - Google Analytics