import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Date; import jxl.CellType;
import jxl.DateCell;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.format.VerticalAlignment;
import jxl.read.biff.BiffException;
import jxl.write.DateFormat;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.NumberFormat;
import jxl.write.WritableCell;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException; import org.junit.Test; public class JXLDemo1 { // 写入EXCEL
// @Test
public void test1() throws Exception, WriteException {
// //获得输出流,该输出流的输出介质是客户端浏览器
//
// OutputStream output=response.getOutputStream();
//
// response.reset();
//
// response.setHeader("Content-disposition","attachment; filename=temp.xls");
//
// response.setContentType("application/msexcel");
// WritableWorkbook wk=Workbook.createWorkbook(output); //  加下划线这部分代码是B/S模式中采用的输出方式,而不是输出到本地指定的磁盘目录。该代码表示将temp.xls的Excel文件通过应答实体(response)输出给请求的客户端浏览器,下载到客户端本地(保存或直接打开)。若要直接输出到磁盘文件可采用下列代码替换加下划线这部分代码
File file = new File("D://temp.xls");
WritableWorkbook wk = Workbook.createWorkbook(file); // 创建可写入的Excel工作薄,且内容将写入到输出流,并通过输出流输出给客户端浏览 // /创建可写入的Excel工作表 WritableSheet sheet = wk.createSheet("成绩表", 0); // 把单元格(column, row)到单元格(column1, row1)进行合并。 // mergeCells(column, row, column1, row1); sheet.mergeCells(0, 0, 4, 0);// 单元格合并方法 // 创建WritableFont 字体对象,参数依次表示黑体、字号12、粗体、非斜体、不带下划线、亮蓝色 WritableFont titleFont = new WritableFont(
WritableFont.createFont("黑体"), 12, WritableFont.BOLD, false,
UnderlineStyle.NO_UNDERLINE, Colour.LIGHT_BLUE); // 创建WritableCellFormat对象,将该对象应用于单元格从而设置单元格的样式 WritableCellFormat titleFormat = new WritableCellFormat(); // 设置字体格式 titleFormat.setFont(titleFont); // 设置文本水平居中对齐 titleFormat.setAlignment(Alignment.CENTRE); // 设置文本垂直居中对齐 titleFormat.setVerticalAlignment(VerticalAlignment.CENTRE); // 设置背景颜色 titleFormat.setBackground(Colour.GRAY_25); // 设置自动换行 titleFormat.setWrap(true); // 添加Label对象,参数依次表示在第一列,第一行,内容,使用的格式 Label lab_00 = new Label(0, 0, "学员考试成绩一览表", titleFormat); // 将定义好的Label对象添加到工作表上,这样工作表的第一列第一行的内容为‘学员考试成绩一览表’并应用了titleFormat定义的样式 sheet.addCell(lab_00); WritableCellFormat cloumnTitleFormat = new WritableCellFormat(); cloumnTitleFormat.setFont(new WritableFont(WritableFont
.createFont("宋体"), 10, WritableFont.BOLD, false)); cloumnTitleFormat.setAlignment(Alignment.CENTRE); Label lab_01 = new Label(0, 1, "姓名", cloumnTitleFormat); Label lab_11 = new Label(1, 1, "班级", cloumnTitleFormat); Label lab_21 = new Label(2, 1, "笔试成绩", cloumnTitleFormat); Label lab_31 = new Label(3, 1, "上机成绩", cloumnTitleFormat); Label lab_41 = new Label(4, 1, "考试日期", cloumnTitleFormat); sheet.addCell(lab_01); sheet.addCell(lab_11); sheet.addCell(lab_21); sheet.addCell(lab_31); sheet.addCell(lab_41); sheet.addCell(new Label(0, 2, "李明")); sheet.addCell(new Label(1, 2, "As178")); // 定义数字格式 NumberFormat nf = new NumberFormat("0.00"); WritableCellFormat wcf = new WritableCellFormat(nf); // 类似于Label对象,区别Label表示文本数据,Number表示数值型数据 Number numlab_22 = new Number(2, 2, 78, wcf); sheet.addCell(numlab_22); sheet.addCell(new Number(3, 2, 87, new WritableCellFormat(
new NumberFormat("#.##")))); // 定义日期格式 DateFormat df = new DateFormat("yyyy-MM-dd hh:mm:ss"); // 创建WritableCellFormat对象 WritableCellFormat datewcf = new WritableCellFormat(df); // 类似于Label对象,区别Label表示文本数据,DateTime表示日期型数据 DateTime dtLab_42 = new DateTime(4, 2, new Date(), datewcf); sheet.addCell(dtLab_42); // 将定义的工作表输出到之前指定的介质中(这里是客户端浏览器) wk.write(); // 操作完成时,关闭对象,释放占用的内存空间 wk.close(); } // 从EXCEL写出
// @Test
public void loadScoreInfo() throws IOException, BiffException { // 导入已存在的Excel文件,获得只读的工作薄对象
FileInputStream fis = new FileInputStream("D://temp.xls");
Workbook wk = Workbook.getWorkbook(fis);
// 获取第一张Sheet表
Sheet sheet = wk.getSheet(0);
// 获取总行数
int rowNum = sheet.getRows();
// 从数据行开始迭代每一行 for (int i = 2; i < rowNum; i++) {
ScoreInfo info = new ScoreInfo();
// getCell(column,row),表示取得指定列指定行的单元格(Cell)
// getContents()获取单元格的内容,返回字符串数据。适用于字符型数据的单元格
// 使用实体类封装单元格数据
info.setStuName(sheet.getCell(0, i).getContents());
info.setClassName(sheet.getCell(1, i).getContents());
// 判断单元格的类型,单元格主要类型LABEL、NUMBER、DATE
if (sheet.getCell(2, i).getType() == CellType.NUMBER) {
// 转化为数值型单元格
NumberCell numCell = (NumberCell) sheet.getCell(2, i);
// NumberCell的getValue()方法取得单元格的数值型数据
info.setWrittenScores(numCell.getValue());
}
if (sheet.getCell(3, i).getType() == CellType.NUMBER) {
NumberCell numCell = (NumberCell) sheet.getCell(3, i);
info.setMachineScores(numCell.getValue());
} if (sheet.getCell(4, i).getType() == CellType.DATE) {
DateCell dateCell = (DateCell) sheet.getCell(4, i);
// DateCell的getDate()方法取得单元格的日期型数据
info.setDate(dateCell.getDate());
}
System.out.println("学生信息" + info);
}
fis.close();
wk.close();
} // 更新EXCEL
@Test
public void test3() throws Exception, IOException {
File file = new File("d://temp.xls");
// 导入已存在的Excel文件,获得只读的工作薄对象
Workbook wk = Workbook.getWorkbook(file);
// 根据只读的工作薄对象(wk)创建可写入的Excel工作薄对象
WritableWorkbook wwb = Workbook.createWorkbook(file, wk);
// 读取第一张工作表
WritableSheet sheet = wwb.getSheet(0);
// /获得要编辑的单元格对象
WritableCell cell = sheet.getWritableCell(1, 2);
// 判断单元格的类型, 做出相应的转化
if (cell.getType() == CellType.LABEL) {
Label lable = (Label) cell;
// 修改单元格的内容
lable.setString("As888");
}
wwb.write();
wwb.close();
wk.close();
} }

使用JXL对EXCLE的导入导出的更多相关文章

  1. 使用Poi对EXCLE的导入导出

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...

  2. Springboot Excle导入导出

    Springboot Excle导入导出 导入操作:Excle批量导入 导出操作:下载模版 开发笔记 pom.xml <!-- Excle相关jar --> <dependency& ...

  3. 简单excel导入导出

    import java.io.File;import java.io.IOException; import jxl.Cell;import jxl.Sheet;import jxl.Workbook ...

  4. jxl导入导出实例

    1 package com.tgb.test; 2 3 import java.io.File; 4 import java.io.IOException; 5 import java.util.Ar ...

  5. jxl导入/导出excel

    1.jxl导入/导出excel案例,黏贴即可运行 package junit.test; import java.io.File; import java.io.IOException; import ...

  6. jxl导入/导出excel(网上的案例)

    jxl导入/导出excel 1.jxl导入/导出excel案例,黏贴即可运行 package junit.test; import java.io.File; import java.io.IOExc ...

  7. 1、jxl导入/导出excel案例,黏贴即可运行

    package junit.test; import java.io.File; import java.io.IOException; import java.util.ArrayList; imp ...

  8. Java 使用 Jxl 实现 Excel 导入导出

    开发过程中经常需要用到数据的导入导出功能,之前用的是POI,这次使用JXL,JXL相对于POI来说要轻量简洁许多,在数据量不大的情况下还是非常实用的.这里做一下使用JXL的学习记录.首先需要导入相应的 ...

  9. java jxl excel 导入导出的 总结(建立超链接,以及目录sheet的索引)

    最近项目要一个批量导出功能,而且要生成一个单独的sheet页,最后后面所有sheet的索引,并且可以点击进入连接.网上搜索了一下,找到一个方法,同时把相关的excel导入导出操作记录一下!以便以后使用 ...

随机推荐

  1. Redis 数据类型分析 字符串 哈希 列表 集合 有序集合 优缺点 分析 注意事项 存储结构

    一.提高Redis使用性能秘诀 KEY尽量少的原则,能放在1个KEY的就放入1个KEY,KEY开销很大尽量减少与Redis发生的交互次数,能批量的就批量,能事务.管道的就事务.管道从业务架构分析确定使 ...

  2. java 邮箱验证

    1.需要加入发送邮件的mail.jar: http://www.oracle.com/technetwork/java/javamail/index-138643.html 2.将字符串通过MD5进行 ...

  3. js的setInterval和setTimeout的那些浅坑

    setInterval和setTimeout的区别简单提一下 setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式.方法会不停地调用函数,直到 clearInterval() ...

  4. Appium切换webview时候报chromedriver版本问题

    前言 用appium切换webview的时候报chrome和chromedriver版本的问题:session not created exception: Chrome version must b ...

  5. 【LeetCode】Integer to Roman(整数转罗马数字)

    这道题是LeetCode里的第12道题. 吐了,刚做完"罗马数字转整数",现在又做这个.这个没什么想法,只能想到使用if语句嵌套,或者使用哈希表.但哈希表我还不熟练啊.先拿if嵌套 ...

  6. linux下ln命令

    转自:http://www.cnblogs.com/peida/archive/2012/12/11/2812294.html ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位 ...

  7. 【JavaScript 13—应用总结】:锁屏遮罩

    导读:上次说了,当弹出登录框时,由于背景色和弹出框时一样的,这样子,其实比较难聚焦到底该操作哪一块.所以,如果,有了颜色的区分,那么通过屏幕遮罩的效果,就可以将我们希望要被处理的东西突出显示.也就达到 ...

  8. MAC生成公钥私钥

    前言 需要开发者在本地上使用openssl来生成私钥和公钥 由于mac 自带openssl工具,所以不用像windows那样要下载安装openssl工具 步骤 1.创建一个文件夹,终端进入该文件夹 c ...

  9. mybatis学习(一)——mybatis简介

    1.简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBati ...

  10. RRAS

    远程访问控制是Windows NT.Win200x Server提供的一种远程服务,它允许用户从远端通过拨号连接连接到一个本地的计算机网络,一旦建立了连接,就相当于处在了本地的LAN中,从而可以使用各 ...