java jxl使用_java创建excel示例(jxl使用方法)
使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用 Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。
package com.yonyou.test;
import java.io.File;import java.io.IOException;
import jxl.Workbook;import jxl.format.Alignment;import jxl.format.Border;import jxl.format.BorderLineStyle;import jxl.format.Colour;import jxl.format.UnderlineStyle;import jxl.write.Label;import jxl.write.NumberFormats;import jxl.write.WritableCellFormat;import jxl.write.WritableFont;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;import jxl.write.biff.RowsExceededException;
public class JxlTable {
private final static JxlTable jxlTable = new JxlTable();
public static JxlTable getInstance() { return jxlTable; }
public JxlTable() { }
public boolean createTable(String header, String[] body, String filePath) { boolean createFlag = true; WritableWorkbook book; try { // 根据路径生成excel文件 book = Workbook.createWorkbook(new File(filePath)); // 创建一个sheet名为"表格" WritableSheet sheet = book.createSheet("表格", 0); // 设置NO列宽度 sheet.setColumnView(1, 5); // 去掉整个sheet中的网格线 sheet.getSettings().setShowGridLines(false); Label tempLabel = null; // 表头输出 String[] headerArr = header.split(","); int headerLen = headerArr.length; // 循环写入表头内容 for (int i = 0; i < headerLen; i++) { tempLabel = new Label(1 + i, 1, headerArr[i], getHeaderCellStyle()); sheet.addCell(tempLabel); } // 表体输出 int bodyLen = body.length; // 循环写入表体内容 for (int j = 0; j < bodyLen; j++) { String[] bodyTempArr = body[j].split(","); for (int k = 0; k < bodyTempArr.length; k++) { WritableCellFormat tempCellFormat = null; tempCellFormat = getBodyCellStyle(); if (tempCellFormat != null) { if (k == 0 || k == (bodyTempArr.length - 1)) { tempCellFormat.setAlignment(Alignment.CENTRE); } } tempLabel = new Label(1 + k, 2 + j, bodyTempArr[k], tempCellFormat); sheet.addCell(tempLabel); } } book.write(); book.close(); } catch (IOException e) { createFlag = false; System.out.println("EXCEL创建失败!"); e.printStackTrace(); } catch (RowsExceededException e) { createFlag = false; System.out.println("EXCEL单元设置创建失败!"); e.printStackTrace(); } catch (WriteException e) { createFlag = false; System.out.println("EXCEL写入失败!"); e.printStackTrace(); }
return createFlag; }
public WritableCellFormat getHeaderCellStyle() { WritableFont font = new WritableFont(WritableFont.createFont("宋体"), 10, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE); WritableCellFormat headerFormat = new WritableCellFormat( NumberFormats.TEXT); try { // 添加字体设置 headerFormat.setFont(font); // 设置单元格背景色:表头为黄色 headerFormat.setBackground(Colour.YELLOW); // 设置表头表格边框样式 // 整个表格线为粗线、黑色 headerFormat.setBorder(Border.ALL, BorderLineStyle.THICK, Colour.BLACK); // 表头内容水平居中显示 headerFormat.setAlignment(Alignment.CENTRE); } catch (WriteException e) { System.out.println("表头单元格样式设置失败!"); } return headerFormat; }
public WritableCellFormat getBodyCellStyle() { WritableFont font = new WritableFont(WritableFont.createFont("宋体"), 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE); WritableCellFormat bodyFormat = new WritableCellFormat(font); try { // 设置单元格背景色:表体为白色 bodyFormat.setBackground(Colour.WHITE); // 设置表头表格边框样式 // 整个表格线为细线、黑色 bodyFormat .setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK); } catch (WriteException e) { System.out.println("表体单元格样式设置失败!"); } return bodyFormat; }
public static void main(String[] args) { String header = "NO,姓名,性别,年龄"; String[] body = new String[4]; body[0] = "1,欧阳锋,男,68"; body[1] = "2,黄药师,男,67"; body[2] = "3,洪七公,男,70"; body[3] = "4,郭靖,男,32"; String filePath = "e:/test.xls"; JxlTable testJxl = JxlTable.getInstance(); boolean flag = testJxl.createTable(header, body, filePath); if (flag) { System.out.println("表格创建成功!!"); } }}
分步讲解:
读取excel文件
要读取excel文件首先应该建立一个wordbook:
Workbook wb=Workbook.getWorkbook(File file);
Workbook wb=Workbook.getWorkbook(InputStream is);
然后就可以获得它的工作表:
Sheet[] sheets=wb.getSheets(); //获得所有工作表
Sheet sheet=wb.getSheet(0); //表示获得第一个工作表。
最后就可以获得对某工作表的某些单元格的值:
Cell cell=sheet.getCell(0,0); //获得第一列 第一行的数据。第一个参数为列
String value=cell.getContents(); //获得该单元格的字符串形式的值
String type=cell.getType(); //获得该单元格的数据类型。
关闭workbook工作流:
当你完成对Excel电子表格数据的处理后,一定要使用close()方法来关闭先前创建的对象,以释放读取数据表的 过程中所占用的内存空间,在读取大量数据时显得尤为重要。参考如下代码片段:
wb.close();
注意:只有完成对该excel的操作后才可以关闭,关闭后在调用如Sheet s=wb.getSheet(0)会为null的。
常用的方法介绍:
Workbook类提供的方法
1. int getNumberOfSheets()
获得工作薄(Workbook)中工作表(Sheet)的个数,示例:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
int sheets = rwb.getNumberOfSheets();
2. Sheet[] getSheets()
返回工作薄(Workbook)中工作表(Sheet)对象数组,示例:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
Sheet[] sheets = rwb.getSheets();
Sheet接口提供的方法
1. String getName()
获取Sheet的名称,示例:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
String sheetName = rs.getName();
2. int getColumns()
获取Sheet表中所包含的总列数,示例:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
int rsColumns = rs.getColumns();
3. Cell[] getColumn(int column)
获取某一列的所有单元格,返回的是单元格对象数组,示例:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
Cell[] cell = rs.getColumn(0);
4. int getRows()
获取Sheet表中所包含的总行数,示例:
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
int rsRows = rs.getRows();
5. Cell[] getRow(int row)
java jxl使用_java创建excel示例(jxl使用方法)相关推荐
- java 雷达图_Java 创建Excel雷达图
class="MsoNormal">本文介绍通过Java程序在Excel工作表中创建雷达图表的方法. 程序环境 Spire.Xls.jar 免费版本3.9.1 Jdk版本要求 ...
- java图表标题_Java 创建Excel图表
import com.spire.xls.*; import com.spire.xls.charts.ChartSerie; import com.spire.xls.charts.ChartSer ...
- java 数据透视表 组件_Java创建Excel数据透视表
正版现货excel效率手册早做完不锡 22.82元 包邮 (需用券) 去购买 > Excel 数据透视表具有强大的数据处理功能,能够使表格中的数据更加直观化.使用Excel 数据透视表,能方便用 ...
- Java学习笔记:创建线程的两种方法
Java学习笔记:创建线程的两种方法 一.预备工作 1.创建Maven项目ThreadDemo 2.在pom.xml里添加依赖 二.继承Thread类创建子线程
- java jxl 写 excel_Java 操作Excel(jxl读和写)
一.读操作: package com.jxl.opr; import java.io.FileInputStream; import java.io.FileNotFoundException; im ...
- java创建线程哪种方法最好_Java创建线程的三种方法比较
一般有三种方法,Thread,Runnable,Callable. Runnable和Callable的区别 (1)Callable规定的方法是call(),Runnable规定的方法是run(). ...
- java 生成zip如法打开_Java创建ZIP压缩文件的方法
本文实例讲述了Java创建ZIP压缩文件的方法.分享给大家供大家参考.具体如下: 这里注意:建议使用org.apache.tools.zip.*包下相关类,否则可能会出现中文乱码问题. /** * 压 ...
- java for循环创建线程_Java创建线程的两种方法
大多数情况,通过实例化一个Thread对象来创建一个线程.Java定义了两种方式: 实现Runnable 接口: 可以继承Thread类. 下面的两小节依次介绍了每一种方式. 实现Runnable接口 ...
- python创建excel_python创建Excel文件数据的方法
原博文 2018-12-07 18:41 − # -*- coding: utf-8 -*- # @Time : 2018/12/6 17:10 # @Author : suchao # @Disc: ...
最新文章
- 探测参考信号(Sounding Reference Signal)
- Codeforces Round #370 (Div. 2)
- 基础篇9-python基本数据结构-列表
- MVC中实现多按钮提交(转)
- 学了python能干啥-第9p,Python是什么?学了Python能干什么?
- springboot集成shiro无法加载样式status302
- 麻瓜编程python爬虫微专业_麻瓜编程 - 主页
- 面向对象的三特性(继承、多态、封装 )Python
- CC创作共用版权协议,要求署名+非商业+相同方式共享
- iptables应用
- mysql 客户端可以访问_Mysql客户端工具可以连接,但是代码访问就会报错
- 考研必备数学公式大全(数学二)(高等数学篇)
- Spring Cloud 系列之 Netflix Eureka 注册中心
- 颜色偏差裙子测试软件,蓝黑/白金裙子告诉你视觉误差到底有多大?——一条裙子引发的全民纠结...
- 韦恩图——你学会了吗?
- Ubuntu学习笔记6-ESP32接收并处理cmd_vel话题
- halcon在图片上画几何形状并保存
- 这款 SQL自动检查神器,吊炸天的功能,真TMD多!!
- 基于Html+Css+javascript的网页制作(旅游主题)
- HDU 1718 Rank counting sort解法
热门文章
- Missing script: “serve“ 解决办法
- 49岁周慧敏近照,使唤古天乐当佣人,丈夫抱怨不生孩子不是女人
- M608c M600i使用技巧
- YATE内部的消息机制
- 第七天;信息打点-资产泄漏CMS识别Git监控SVNDS_Store备份
- 电脑下载的qlv格式视频怎么转换成MP4
- 高纯度贵金属行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- 整理最新境外投资企业(机构)备案结果公开名录
- MySQL/ 第一章 MySQL数据库
- 数据体系建设-ODS|DW|TDM|ADS介绍