java生成简单Excel工作薄

前言:

  代码都是建立在实际需求上的,上周做完一个调外部电影券接口的项目,这周产品又要excel表格,大致内容为:券所属影院、图片URL、等信息制作为excel表格,把每次同步过来的数据给他分析。

jxl:全称JavaExcelAPI,是一个用来读写修改EXCEL的JAVA开源类库,使用起来相对简单。

  jar包下载地址: http://www.andykhan.com/jexcelapi/download.html



下面是刚写完的一个简单不能再简单的Demo了,没有任何附加样式,下班了,样式这周末再慢慢调吧

Demo代码:

package com.java.jexcel;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Calendar;
import java.util.Date;
import jxl.Workbook;
import jxl.write.DateFormats;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

/**
 * @author liuyt
 * @date   2014-11-20 下午5:04:48
 * bolgs   http://www.cnblogs.com/liuyitian/
 */
public class SimpleExcelDemo {
    /**
     * java生成Excel工作薄文件至本地目录
     * @param fileName 文件名
     * @return
     * @throws Exception
     */
    public static String exportExcel(String fileName) throws Exception {

        // 首先创建一个用于保存excel表格的文件
        File file = new File("D:\\data\\" + fileName +".xls");

        // 创建一个文件输出流,用于写出表格到本地文件夹
        OutputStream out = new FileOutputStream(file);

        // 创建一个可读写入的工作薄(相当于创建了一个excel表格。抽象类,不能用new来创建)
        WritableWorkbook workbook = Workbook.createWorkbook(out); 

        // 创建一个新页(一个excel文件可以包含多页哦。参数一:本页名称;参数二:页数,第一页为0)
        WritableSheet sheet =  workbook.createSheet("简单excel制作", 0);

        /**
         *  创建一个标签,相当于单元格,用于填充到本页中
         *  (参数一:列坐标,0开始; 参数二:行坐标,0开始; 参数三:单元格内容;参数四:可选,一个格式工具-之后介绍)
         *  所以行坐标为0的时候,可以理解为表头哦。
         */
        Label cell = new Label(0, 0, "姓名"); // 1行1列

        // 添加单元格至本页中(目前表格最左上角应该有一个“步骤一”的单元格)
        sheet.addCell(cell);

        // 一鼓作气先把表头制作出来
        cell = new Label(1, 0, "年龄");  // 1行2列
        sheet.addCell(cell);
        cell = new Label(2, 0, "生日"); // 1行3列
        sheet.addCell(cell);
        cell = new Label(3, 0, "博客地址"); // 1行4列
        sheet.addCell(cell);

        /**
         * 接下来填充内容,记住表头的设置哦,别对混淆了。
         * cell并非只有Lable一种类型,还有其他三种分别为:Number,Boolean,DateTime。  分别对应了字符串,数字,布尔和时间格式
         * 设计这么多类型多余吗?NO,你在写入的时候无所谓,但当你读取一个excel到程序中,没有这些类型帮助你判断,..各种转换异常..
         */
        cell = new Label(0, 1, "刘一天"); // 2行1列
        sheet.addCell(cell);

        Number age = new Number(1, 1, 23); // 2行2列  (年龄:Number类型)
        sheet.addCell(age);

        /**
         * 对于日期格式,你可以直接写入一个java.util.Date类型的时间,但格式可能不是你想要的
         * jxl自己有单元格格式化类:WritableCellFormat,它可以设置单元格背景颜色、文字换行、边框和样式等
         * 也可以传入一个DisplayFormat(显示形式)来构造一个格式工具类
         */
        WritableCellFormat  wf = new WritableCellFormat(DateFormats.FORMAT1);
        Calendar c = Calendar.getInstance();
        c.set(1991, 5, 16);
        Date d = c.getTime();
        DateTime birthday = new DateTime(2, 1, d, wf); // 2行3列  (生日:DateTime类型)
        sheet.addCell(birthday);

        cell = new Label(3, 1, "http://www.cnblogs.com/liuyitian/"); // 2行4列
        sheet.addCell(cell);

        workbook.write(); // 写入Excel工作表
        workbook.close(); // 关闭Excel工作表,同时也会关闭IO流,勿忘。
        return "写入完成,就是这么简单,自己亲自试一下吧?";
    }

    /** 简单test **/
    public static void main(String[] args) {
        try {
            System.out.println(SimpleExcelDemo.exportExcel("简单excel制作"));
        } catch (Exception e) {
            System.out.println("写入失败"+e.getMessage());
        }
    }
}


效果图:



  下班了,赶紧撤。

  ps:欢迎转载,转载请注明出处:http://www.cnblogs.com/liuyitian/p/4111451.html

                          写作不易,难免有疏漏和错误,还请慷慨指正,不错请推荐



                                         每天多学一点点     代码少敲一点点

时间: 2024-10-05 05:11:50

java生成简单Excel工作薄的相关文章

java 生成简单word(利用Itext工具),生成简单Excel,以及下载笔记

1.java 生成简单word(包含图片表格) pom中加入itext 相关依赖 <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>2.1.7</version> </dependency> <dependency> <groupId>com.lowagie</gr

如何把一个excel工作薄中N个工作表复制到另一个工作薄中

一般遇到标题这样的情况,许多人可能会一个一个的复制粘贴,其实完全不必那么麻烦. 你可以按以下步骤来操作: 第一步:打开所有要操作的excel工作薄 第二部:按住Shift键,选择所有要复制的工作表,在选择的工作表上单击右键 第三步:在弹出的菜单中,选择移动或复制(M)...选项. 第四步:在新弹出的窗口中选择转移到的目标工作薄,以及放置的位置.点击确定,转移成功.

获取Excel工作薄中Sheet页(工作表)名集合

#region 获取Excel工作薄中Sheet页(工作表)名集合 /// <summary> /// 获取Excel工作薄中Sheet页(工作表)名集合 /// </summary> /// <param name="excelFile">Excel文件名及路径,EG:C:\Users\JK\Desktop\导入测试.xls</param> /// <returns>Sheet页名称集合</returns> pr

第二章、Excel工作薄和工作表操作

02-00.工作薄和工作表的基础知识 定义与关联:工作薄就是一个Excel文件,这个文件是由多张工作表组成的,比方说如果工作薄看做一本书,而工作表可以看做是表里的每一页. 大小:一本书到底有多厚,工作薄可以建多少个工作表,有的教材上面说是255,实际上是不完全准确的,工作表能建立多少取决于内存的大小 重要性:工作薄(workbook)与工作表(worksheet)是Excel VBA中非常重要的两个对象 工作中经常对几个工作薄中的数据进行汇总,也可能对一个表中的数据进行按不同的方式分单. 分到不

合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友_python

这时候还需要把各个工作表合并到一起来形成一个汇总表.这时候比较麻烦也比较容易出错,因为各个表的学号不一定都是一致的.对齐的.因为可能会有人缺考,有人会考号涂错等等.特奉献以下代码,用于合并学生成绩表或者其它类似的表都可以.本代码特点在于不需要使用SQL或者Access等大头软件,只需要Excel就可以执行,非常方便,速度也不慢.转载请勿清除广告. 没有合适的局域网管理软件吗?你的网管工具够灵活够高效吗?看看这个network management software. ' ============

java生成简单验证码图片

概要 最近项目需要用java实现输出随机验证码图片到前台,正好有机会接触下java的绘图类,完成需求后也有时间做个总结,写篇随笔记录下也希望能帮助到有同样需求的人! 需求流程图 1.生成随机数 在java中生成随机数无非就是调用Random的api,但为了后续更好的实用,应该分成多种组合以适应需求的变化,应将生成随机数的个数和类型组合还有排除字符抽取成参数,这个也比较简单,没有什么难度,就直接贴上代码 1 /** 2 * 生成随机验证码 3 * @param type 类型 4 * @param

java写简单Excel 首行是目录 然后前台下载

页面: <form action="${path}/xxx/xxx.do" method="get" > 表格下载:<input type="submit" value="下载"> </form> @RequestMapping("/download") public void download(HttpServletRequest request, HttpServle

Java生成和操作Excel文件

JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表.因为它是使用Java编写的,所以我们在Web应用中可以通过JSP.Servlet来调用API实现对Excel数据表的访问. 下载: 官方网站 http://www.andykhan.com/jexcelapi/ 下载最新版本(本人下的是jexcelapi_2_6

java生成Excel及操作Excel

JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表.因为它是使用Java编写的,所以我们在Web应用中可以通过JSP.Servlet来调用API实现对Excel数据表的访问. 下载: 官方网站 http://www.andykhan.com/jexcelapi/ 下载最新版本(本人下的是jexcelapi_2_6