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. Python基础之字符串,布尔值,整数,列表,元组,字典,集合

    一.str字符串 1.capitalize字符串首字母大写 name = "json" v = name.capitalize() print(v) # 输出结果:Json 2.c ...

  2. 【02】markdown工具推荐

    [02]信息 Windows 平台 MarkdownPad MarkPad Linux 平台 ReText Mac 平台 Mou 最新版Mac OS下Mou已经无法使用了.这里推荐一个跨平台的编辑器  ...

  3. x86保护模式 控制寄存器和系统地址寄存器

    控制寄存器和系统地址寄存器 控制寄存器    crx cr0   指示cpu工作方式的控制位  包含启用和禁止分页管理机制的控制位  包含控制浮点协处理器操作的控制位   注意必须为0的位 cr2和c ...

  4. zoj 2830 Champion of the Swordsmanship

    Champion of the Swordsmanship Time Limit: 2 Seconds      Memory Limit: 65536 KB In Zhejiang Universi ...

  5. [转载] Laya性能优化精选内容整理

    第一是性能统计工具,这是LayaAir引擎内置的性能统计工具,在代码加入Laya.Stat.show(); 引擎内置的性能统计工具 打开这个工具后,可以用于观察性能,除了FPS越高越好外,其它的值越低 ...

  6. iOS学习笔记04-视图切换

    一.视图切换 UITabBarController (分页控制器) - 平行管理视图 UINavigationController (导航控制器) - 压栈出栈管理视图 模态窗口 二.UITabBar ...

  7. 洛谷P4094 - [TJOI2016]字符串

    Portal Description 给出一个字符串\(s(|s|\leq10^5)\)和\(m\)次询问,每次询问子串\(s[x_1..x_2]\)的所有子串和\(s[y_1..y_2]\)的最长公 ...

  8. 刷题总结——随机图(ssoi)

    题目: 随机图 (random.cpp/c/pas) [问题描述] BG 为了造数据,随机生成了一张�个点的无向图.他把顶点标号为1~�. 根据BG 的随机算法,对于一个点对�, �(1 ≤ � &l ...

  9. poj3180 The Cow Prom

    The Cow Prom Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2373   Accepted: 1402 Desc ...

  10. hdu4035 Maze (树上dp求期望)

    dp求期望的题. 题意: 有n个房间,由n-1条隧道连通起来,实际上就形成了一棵树, 从结点1出发,开始走,在每个结点i都有3种可能: 1.被杀死,回到结点1处(概率为ki) 2.找到出口,走出迷宫 ...