前言:

  代码都是建立在实际需求上的,上周做完一个调外部电影券接口的项目,这周产品又要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

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


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

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

  1. excel如何将一个工作薄中的工作表生成独立的工作薄

    excel如何将一个工作薄中的工作表生成独立的工作薄  '用vba代码 Sub 另存所有工作表为工作簿() Dim sht As Worksheet Application.ScreenUpdatin ...

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

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

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

    一般遇到标题这样的情况,许多人可能会一个一个的复制粘贴,其实完全不必那么麻烦. 你可以按以下步骤来操作: 第一步:打开所有要操作的excel工作薄\n 第二步:按住Shift键,选择所有要复制的工作表 ...

  4. VBA基础之Excel 工作薄(Book)的操作(三)

    三. Excel 工作薄(Book)的操作1. Excel 创建工作薄(Book) Sub addWorkbook() Workbooks.Add End Sub 2. Excel 打开工作薄(Boo ...

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

    #region 获取Excel工作薄中Sheet页(工作表)名集合 02./// <summary> 03./// 获取Excel工作薄中Sheet页(工作表)名集合 04./// < ...

  6. python解决excel工作薄合并处理(openpyxl处理excel2010以上版本)

    前段时间使用xlrd.xlwt对文件进行处理(https://www.cnblogs.com/pinpin/p/10287491.html),但是只能处理excel2010以下版本,所以又写了个处理e ...

  7. java生成简单验证码图片

    概要 最近项目需要用java实现输出随机验证码图片到前台,正好有机会接触下java的绘图类,完成需求后也有时间做个总结,写篇随笔记录下也希望能帮助到有同样需求的人! 需求流程图 1.生成随机数 在ja ...

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

    这时候还需要把各个工作表合并到一起来形成一个汇总表.这时候比较麻烦也比较容易出错,因为各个表的学号不一定都是一致的.对齐的.因为可能会有人缺考,有人会考号涂错等等.特奉献以下代码,用于合并学生成绩表或 ...

  9. python解决excel工作薄合并处理

    年度了,要对每个月的数据进行总的汇总,去计算每消耗品的使用情况,表格都在一个工作表的不同sheet中,并且格式相同,所以就用python写了这个小脚本,现在把脚本粘贴出来,以后有需要就可以在此基础上改 ...

随机推荐

  1. 在C#中读写INI配置文件(转)

    在作应用系统开发时,管理配置是必不可少的.例如数据库服务器的配置.安装和更新配置等等.由于Xml的兴起,现在的配置文件大都是以xml文档来存储.比如Visual Studio.Net自身的配置文件Ma ...

  2. 配置IIS应用程序池

    IIS 6的核心在于工作进程隔离模式,而应用程序池则是定义工作进程如何进行工作,因此,可以说应用程序池是整个IIS 6的核心. 和IIS 5中只能使用单个应用程序池不同,工作在工作进程隔离模式的IIS ...

  3. threadlocal精髓是为每一个线程保证一个共享对象,保证一个,保证是同一个

    threadlocal精髓是为每一个线程保证一个共享对象,保证一个,保证同一个线程中是同一个共享对象. 如果是静态变量是共享的话,那必须同步,否则尽管有副本,还是会出错,故C错

  4. ubuntu下搭建cocos2dx编程环境-中

        上篇文章里讲了在ubuntu下部署cocos2d-x开发环境,这篇文章主要示范在ubuntu下部署cocos2d-x android开发环境.分开写就是因为我看很多文章里都将这两件事情混杂着写 ...

  5. 模拟登陆115网盘(MFC版)

    [cpp] view plain copy // 模拟登陆115网盘 #include <afxinet.h> // 包含相关的头文件 /* 用抓包工具抓包可得到需要提交的数据,然后模拟提 ...

  6. MFC的GUI窗口使用Console输出函数printf(AllocConsole后,使用GetStdHandle取得句柄,然后就可以操作了)

    在GUI程序中使用printf函数: #include <io.h> #include <fcntl.h> void InitConsole() { int nRet= 0; ...

  7. TForm的显示过程

    新建一个空窗体项目,然后运行,此时首先运行: procedure TApplication.Run; begin FRunning := True; try AddExitProc(DoneAppli ...

  8. linux系统主要常见目录结构

    linux系统的一切从“/”开始,并按照文件系统目录标准FHS采用树桩结构来存放文件 并定义了每个区域的用途.

  9. android ADB命令的使用

    http://jingyan.baidu.com/article/fcb5aff7f55c63edab4a7174.html 综上所述,我觉得告知各位菜鸟同学如何删除自带的程序是很有必要的一件事情.1 ...

  10. Docker+K8S实践

    一.运维角度: (一)镜像: 1. 避免依赖过深.不要在基础镜像上加太多产生其他的镜像,我觉得这块最多是三四层. 一层是base景像再往上是工具.中间件这样的,再往上一层就是你自己的程序,再多就比较乱 ...