【Java】JXL 操作 Excel

精通Java JXL操作Excel库 本文还有配套的精品资源,点击获取 简介:Java JXL是一个开源库,专门用于在Java程序中读取、写入和操作Excel文件。它提供了一套方便的API,支持多种Excel操作,比如读写单元格内容、格式化工作表、插入公式和图像等。本教程详细介绍了如何使用JXL库实现基本与高级Excel操作,包括安装导入、单元格和工作表管理、样式格式化、以及性能最佳实践。 1. JX... 阅读详情

jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的, 并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。 另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。

使用如下:

搭建环境

将下载后的文件解包,得到jxl.jar,放入classpath,安装就完成了。

基本操作

一、创建文件

拟生成一个名为“test.xls”的Excel文件,其中第一个工作表被命名为
“第一页”,大致效果如下:

package test;

// 生成Excel的类

import java.io.File;

import
jxl.Workbook;
import
jxl.write.Label;
import
jxl.write.WritableSheet;
import
jxl.write.WritableWorkbook;

public class CreateExcel
{
   
public static void main(String args[])
{
       
try
{
           
// 打开文件

            WritableWorkbook book = Workbook.createWorkbook(new File( " test.xls " ));
           
// 生成名为“第一页”的工作表,参数0表示这是第一页

            WritableSheet sheet = book.createSheet(" 第一页 " , 0);
           
//
在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
           
// 以及单元格内容为test

            Label label = new Label( 0 , 0, " test " );

           
// 将定义好的单元格添加到工作表中

            sheet.addCell(label);

           
/**/
/*
             * 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123
            
*/

            jxl.write.Number number
= new jxl.write.Number( 1 , 0, 555.12541);
            sheet.addCell(number);

           
// 写入数据并关闭文件

            book.write();
            book.close();

        }
catch (Exception e) {
            System.out.println(e);
        }

    }

}

   编译执行后,会产生一个Excel文件。

三、读取文件

以刚才我们创建的Excel文件为例,做一个简单的读取操作,程序代码如下:

package test;

// 读取Excel的类

import java.io.File;

import
jxl.Cell;
import
jxl.Sheet;
import
jxl.Workbook;

public class ReadExcel
{
   
public static void main(String args[])
{
       
try
{
            Workbook book
= Workbook.getWorkbook(new File( " test.xls "
));
           
// 获得第一个工作表对象

            Sheet sheet = book.getSheet(0 );
           
// 得到第一列第一行的单元格

            Cell cell1 = sheet.getCell(0 , 0 );
            String result
=
cell1.getContents();
            System.out.println(result);
            book.close();
        }
catch (Exception e) {
            System.out.println(e);
        }

    }

}


  程序执行结果:test

四、修改文件
利用jExcelAPI可以修改已有的Excel文件,修改Excel文件的时候,除了打开文件的方式不同之外,
其他操作和创建Excel是一样的。下面的例子是在我们已经生成的Excel文件中添加一个工作表:

package test;

import
java.io.File;

import
jxl.Workbook;
import
jxl.write.Label;
import
jxl.write.WritableSheet;
import
jxl.write.WritableWorkbook;

public class UpdateExcel
{
   
public static void main(String args[])
{
       
try
{
           
// Excel获得文件

            Workbook wb = Workbook.getWorkbook(new File( " test.xls " ));
           
// 打开一个文件的副本,并且指定数据写回到原文件

            WritableWorkbook book = Workbook.createWorkbook(new File( " test.xls " ),
                    wb);
           
// 添加一个工作表

            WritableSheet sheet = book.createSheet(" 第二页 " , 1);
            sheet.addCell(
new Label(0 , 0 , "第二页的测试数据 "
));
            book.write();
            book.close();
        }
catch (Exception e) {
            System.out.println(e);
        }

    }

}


其他操作

一、 数据格式化

在Excel中不涉及复杂的数据类型,能够比较好的处理字串、数字和日期已经能够满足一般的应用。

1、 字串格式化

字符串的格式化涉及到的是字体、粗细、字号等元素,这些功能主要由WritableFont和
WritableCellFormat类来负责。假设我们在生成一个含有字串的单元格时,使用如下语句,
为方便叙述,我们为每一行命令加了编号:

WritableFont font1 =
new WritableFont(WritableFont.TIMES,16 ,WritableFont.BOLD); ①

WritableCellFormat format1
= new
WritableCellFormat(font1); ②

Label label
= new Label( 0 ,0 ,”data 4
test”,format1) ③

  其中①指定了字串格式:字体为TIMES,字号16,加粗显示。WritableFont有非常丰富的
构造子,供不同情况下使用,jExcelAPI的java-doc中有详细列表,这里不再列出。

②处代码使用了WritableCellFormat类,这个类非常重要,通过它可以指定单元格的各种
属性,后面的单元格格式化中会有更多描述。

③处使用了Label类的构造子,指定了字串被赋予那种格式。

在WritableCellFormat类中,还有一个很重要的方法是指定数据的对齐方式,比如针对我们
上面的实例,可以指定:

// 把水平对齐方式指定为居中
format1.setAlignment(jxl.format.Alignment.CENTRE);

// 把垂直对齐方式指定为居中

format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

二、单元格操作

Excel中很重要的一部分是对单元格的操作,比如行高、列宽、单元格合并等,所幸jExcelAPI
提供了这些支持。这些操作相对比较简单,下面只介绍一下相关的API。

1、 合并单元格

WritableSheet.mergeCells( int m, int n, int p, int q);

// 作用是从(m,n)到(p,q)的单元格全部合并,比如:

WritableSheet sheet= book.createSheet(“第一页”,0 );

// 合并第一列第一行到第六列第一行的所有单元格

sheet.mergeCells(0 , 0 , 5, 0 );

合并既可以是横向的,也可以是纵向的。合并后的单元格不能再次进行合并,否则会触发异常。

2、 行高和列宽

WritableSheet.setRowView( int i, int height);

//
作用是指定第i+1行的高度,比如:

// 将第一行的高度设为200

sheet.setRowView(0 , 200 );

WritableSheet.setColumnView(
int i, int
width);

//
作用是指定第i+1列的宽度,比如:

// 将第一列的宽度设为30

sheet.setColumnView(0 , 30 );

jExcelAPI还有其他的一些功能,比如插入图片等,这里就不再一一介绍,读者可以自己探索。

其中:如果读一个excel,需要知道它有多少行和多少列,如下操作:

Workbook book = Workbook.getWorkbook( new File( " 测试1.xls " ));
       
// 获得第一个工作表对象

        Sheet sheet = book.getSheet(0 );
       
// 得到第一列第一行的单元格

        int columnum = sheet.getColumns();// 得到列数
        int rownum = sheet.getRows();// 得到行数
        System.out.println(columnum);
        System.out.println(rownum);
       
for ( int i = 0 ; i < rownum; i++ ) // 循环进行读写

        {
           
for ( int j = 0 ; j < columnum; j++ )
{
                Cell cell1
=
sheet.getCell(j, i);
                String result
=
cell1.getContents();
                System.out.print(result);
                System.out.print(
" \t "
);
            }

            System.out.println();
        }

        book.close();

Jxl是一个开源的Java Excel API项目,通过Jxl,Java可以很方便的操作微软的Excel文档。除了Jxl之外,还有Apache的一个POI项目,也可以操作Excel,两者相比之下:Jxl使用方便,但功能相对POI比较弱。POI使用复杂,上手慢,除了这个没啥说的了。
Jxl目前最新2.6.10,下载地址是:

http://www.andykhan.com/jexcelapi/

API总结
1、创建或读取一个工作薄 Workbook
创建一个工作薄,就是整个Excel文档,
         WritableWorkbook wwb = Workbook.createWorkbook(os);
其中os为一个文件输出流。当然还有很多其他的入参,比如File等。
Workbook不但能用来创建工作薄,也可以读取现有的工作薄,比如:
         Workbook.getWorkbook(java.io.File file);
Workbook是一个很重要工具类,里面方法基本上都是static的,使用方便。
2、创建工作表 Sheet
创建工作表的方式是通过上面创建的WritableWorkbook对象来操作。
创建一个工作表:
         createSheet(java.lang.String name, int index),
两个参数分别是工作表名字和插入位置,这个位置从0开始,比如:
         WritableSheet sheet = wwb.createSheet( "演员表", 0);
3、创建标签 Label
实际上标签这里的意思就是工作表的单元格,这个单元格多种,分别对应不同的类,比如jxl.write.Boolean、jxl.write.Boolean等。
         Label label = new Label(col, row, title);
三个参数分别表示col+1列,row+1行,标题内容是title。
将标签加入到工作表中
         sheet.addCell(label);
4、填充数据
数据填充这块稍微复杂点,涉及到数据单元格的格式问题。
a)、填充数字
        jxl.write.Number numb = new jxl.write.Number(1, 1, 250);
        sheet.addCell(numb);
b)、填充格式化的数字
        jxl.write.NumberFormat nf = new jxl.write.NumberFormat( "#.##");
        jxl.write.WritableCellFormat wcf = new jxl.write.WritableCellFormat(nf);
        jxl.write.Number n = new jxl.write.Number(2, 1, 2.451, wcf);
        sheet.addCell(n);
c)、填充日期
        SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd hh:mm:ss");
        String newdate = sdf.format( new Date());
        label = new Label(2, 2, newdate);
        sheet.addCell(label);
d)、填充文本
        label = new Label(3, 3, "周星驰");
        sheet.addCell(label);
e)、填充boolean值
        jxl.write.Boolean bool = new jxl.write.Boolean(4, 1, true);
        sheet.addCell(bool);
5、合并单元格
通过writablesheet.mergeCells(int x,int y,int m,int n);来实现的。
表示将从第x+1列,y+1行到m+1列,n+1行合并 (四个点定义了两个坐标,左上角和右下角)
结果是合并了m-x+1行,n-y+1列,两者乘积就是合并的单元格数量。
        sheet.mergeCells(0, 6, 3, 8);
        label = new Label(0, 6, "合并了12个单元格");
        sheet.addCell(label);
6、添加单元格的式样
主要是改变单元格背景、字体、颜色等等。
        WritableCellFormat wc = new WritableCellFormat();
        // 设置居中
        wc.setAlignment(Alignment.CENTRE);
        // 设置边框线
        wc.setBorder(Border.ALL, BorderLineStyle.THIN);
        // 设置单元格的背景颜色
        wc.setBackground=\'#\'"
        label = new Label(1, 5, "字体", wc);
        sheet.addCell(label);
7、设置单元格字体
        // 设置字体
        jxl.write.WritableFont wfont = new jxl.write.WritableFont(WritableFont.createFont( "楷书"), 20);
        WritableCellFormat font = new WritableCellFormat(wfont);
        label = new Label(2, 6, "楷书", font);
        sheet.addCell(label);
8、将工作写成文件
        // 写入数据
        wwb.write();
        // 关闭文件
        wwb.close();
9、行列的批量操作
        //获取所有的工作表
        jxl.write.WritableSheet[] sheetList = wwb.getSheets();
        //获取第1列所有的单元格
        jxl.Cell[] cellc = sheet.getColumn(0);
        //获取第1行所有的单元格
        jxl.Cell[] cellr = sheet.getRow(0);
        //获取第1行第1列的单元格
        Cell c = sheet.getCell(0, 0);
10、获取单元格的值
        //获取单元格的值,不管什么单元格,返回都是字符串
        String value = c.getContents();

Java使用JXL库操作Excel表格的全面指南 在第一章中,我们将揭开JXL库的神秘面纱,理解它的核心价值以及它在Java编程世界中的定位。JXL库,即Java Excel API,是一个开源的Java库,它允许开发者在Java应用程序中轻松地读取和写入Microsoft Excel格式的文件,即.xls和.xlsx。通过使用JXL,开发者能够有效地处理电子表格数据,实现数据导入导出等功能,这对于需要与Excel文件交互的IT从业者来说是一大福音。 阅读详情

相关推荐

Java与Excel的交互:使用jxl库解析和操作Excel文件

本文还有配套的精品资源,点击获取 简介:在Java中处理Excel文件对于数据处理场景至关重要。本文将介绍如何使用jxl库来读取、写入和操作Excel文件。通过示例代码和详细步骤,包括添加jxl依赖、读取Excel内容、写入数据到Excel以及运用jxl库提供的其他功能,如样式设置和单元格合并等。jxl库提供了对多种Excel格式的支持,并通过API文档可以帮助进一步深入使...

weixin_35734408的博客 2353

Java导出excel表格,数字数据带E

java导出excel表格带E

hyx153183740的博客 2278

Java操作Excel实战:基于JXL的简洁读写实现

JXL(Java Excel API)是一个轻量级的Java库,专为读写Excel 97-2003格式(.xls)文件而设计。它以简单易用、资源消耗低的特点在早期Java开发中广受欢迎,尤其适用于数据导入导出、报表生成等业务场景。其核心功能包括:读取Excel中的单元格数据、支持多种数据类型解析(如字符串、数字、日期)、创建和写入新的Excel文件,并支持基本的样式设置。对于小型项目或对性能要求不苛刻的场景,JXL是一个快速上手的解决方案。要在Java项目中使用JXL,需下载其JAR包(如。

weixin_42611177的博客 1206

JXL示例

package com.coderdream.jxl;import java.io.File;import java.io.IOException;import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jxl.format.Alignment;import jxl.format.Border;import jxl.format.Bo

博艺的技术专栏 1163

深入探索Java中使用JXL库操作Excel文件

处理财务数据时,对小数点的精确控制是必不可少的。JXL库提供了对小数点格式预定义和自定义的能力,允许开发者按照业务需求来格式化数据。JXL库预定义了多种小数点格式,可以直接应用。例如,我们可以使用类来定义小数点后保留两位数的格式:以上代码创建了一个新的单元格格式,小数点后将保留两位数。如果预定义的格式无法满足需求,我们可以自定义格式。比如,在处理货币时,可能需要添加货币符号并设置特定的小数位数:然后,可以将这个自定义格式应用到对象中。

weixin_30820933的博客 1108

在 Kubernetes 上部署 Label Studio

Label Studio 是一款开源的数据标注工具,支持多种标注任务,如文本标注、图像标注、音频标注等。

啥都会一点 669

selenium自动化测试中,采用jxl实现参数化(从Excel中读取数据)

声明:本文在http://www.cnblogs.com/liu-ke/p/4223807.html基础上稍作修改import java.io.FileInputStream; import java.io.InputStream; import java.util.List; import java.util.ArrayList; import org.testng.Assert; impor

alchaochao的专栏 4803

[后端设计]innovus命令editPin详解?

先放命令,有空慢慢写。

m0_61003348的博客 5731

java使用jxl导出excel字符串类型转化成数值型

https://blog.youkuaiyun.com/zzq900503/article/details/49123387 运用场景: 导出excel后 发现 数值类型的字段 在excel中表现为文本类型,这样不利于计算。 解决办法: // 创建一个可写入的工作表 // Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置 WritableSheet ws = wwb.createSheet(ti...

hellojoy的博客 2281

AD服务器搭建

一、角色安装1)打开服务器管理器,添加 角色和功能;2) 点 下一步;3)点 下一步;4)点 下一步;5)点击安装;6-1)将此服务器提升为域控制器;6-2)点下一步;6)输入密码 点 下一步;7)自动生成LIXF,点击下一步;8)确认目录,点下一步;8)确认安装条件,点安装; 8)安装成功,点关闭;...

潇峰的博客 6451

保姆级教程:用Docker一键部署vLLM大模型推理服务(附常见报错解决方案)

本文提供了一份详细的Docker化vLLM大模型推理服务部署指南,涵盖从环境准备到性能调优的全流程。通过容器化技术解决大语言模型部署中的显存利用率、吞吐量等核心问题,并附常见报错解决方案,帮助开发者快速构建高效、可扩展的AI推理服务。

weixin_29248313的博客 492

Jxl使用总结

Log4学习笔记   【书摘】程序员成长的10个阶段 Jxl使用总结   2010-07-19 20:36:37|  分类: jxl |  标签: |字号大中小 订阅 API总结   1、创建或读取一个工作薄 Workbook   创建一个工作薄,就是整个Excel文档,          WritableWorkbook wwb

java_7star的专栏 1084

PyQtWebEngine安装避坑指南:快速解决ModuleNotFoundError

本文详细解析了PyQt5开发中常见的ModuleNotFoundError: No module named 'PyQt5.QtWebEngineWidgets'错误。核心原因是PyQt5 5.11版本后,网页引擎组件被独立为PyQtWebEngine包。文章对比了退回旧版本、独立安装及使用Conda等多种解决方案,并提供了针对Windows、macOS和Linux不同平台的实战安装指南与验证方法,帮助开发者快速解决依赖问题。

weixin_29056101的博客 427

java 操作excel jxl_java 中JXL操作Excel实例详解

JXL操作Excel前言:jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的, 并不 依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。 另外需要说明的是,这套API对图形和图表的支持...

weixin_34785304的博客 301

保姆级教程:用Altium Designer 24从零画一块PCB(附完整库文件与避坑清单)

本文提供了一份详细的Altium Designer 24(AD24)PCB设计教程,从工程创建到最终文件输出,涵盖元件库管理、原理图设计、PCB布局布线等全流程。特别适合初学者,包含STM32最小系统板的实战案例,附完整库文件和避坑清单,帮助用户快速掌握AD24的核心功能与技巧。

weixin_27697385的博客 249

基于Pycatia的智能孔特征识别技术:无参模型圆心自动化提取方案

基于Pycatia的智能孔特征识别技术:无参模型圆心自动化提取方案

KE17RS的博客 2878

Java操作Excel之JXL

http://it.chinawin.net/softwaredev/article-13f87.html http://www.cnblogs.com/raymond19840709/archive/2008/06/26/1230289.html http://www.iteye.com/blogs/tag/Jxl Java操作Excel之理解 JXL--读取Exc

沉底的石头 1968

图神经网络实战(1)——图神经网络(Graph Neural Networks, GNN)基础

本节全面介绍了图神经网络 (Graph Neural Network, GNN) ,包括其在数据分析和机器学习中的重要性。首先探讨了图作为数据表示的相关概念及其在各个领域的广泛应用;然后深入探讨图学习的重要性,包括不同的应用和技术。最后,重点介绍了 GNN 架构,并对比了它与其他方法之间的原理和性能差异。

盼小辉丶的博客 15万+

java jxl_java 中JXL操作Excel实例详解

JXL操作Excel前言:jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的, 并不 依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。 另外需要说明的是,这套API对图形和图表的支持...

weixin_42449375的博客 636

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java jxl使用_java使用jxl简单操作Excel

最近在网上找了一些教程,有不少文章感觉都把简单问题讲的有点复杂了。因此在这,写下自己对JXL操作Excel的一些[简单]操作理解吧。~ 当然文章有很多不足和偏见,请大家多多包涵。~下面话入正题。—————————————————————————————————————这里是华丽的分割线———————————————————————————————————————首先,想使用JAVA操作Excel...

weixin_39899630的博客 219

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jxl工具——java操作excel

jxl工具——java操作excel 说明 只能操作xls,不能操作xlsx。反正另存为改个格式都一样的。 先要下好jar包。 使用方法 以下是读写的简要代码,看下注释应该很好理解。 值得注意的是,jxl里一般都用列+行来确定cell的位置,而不是行+列。 import java.io.File; import java.io.IOException; import jxl.Cell; impo...

Paul_1i的博客 269

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java jxl_JXL操作Excel

jxl是一个韩国人写的java操作excel的工具,在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式...

weixin_28839629的博客 209

java使用jxl简单操作Excel

java使用jxl简单操作Excel 最近在网上找了一些教程,有不少文章感觉都把简单问题讲的有点复杂了。因此在这,写下自己对JXL操作Excel的一些[简单]操作理解吧。~ 当然文章有很多不足和偏见,请大家多多包涵。~下面话入正题。 ——————————————...

diaosuicui8491的博客 174

Java 使用jxl对Excel进行操作

一个作业需要对excel数据进行离散化,想起好像可以用java对excel数据进行处理,因此学习使用, 在网上也有很多人对这个内容解释,但是还是觉得有些杂,就自己整理了一些别人写的内容。 /************************************************正文啦********************************************...

arnbdmt15232的博客 254

Java实现Excel操作(POI,JXL,FASTEXCEL)

原文链接:Java实现Excel操作(方法简介) Java操作excel实现的基本类以及方式简介如下:Excel分为.xls(老版)、.xlsx(新版)。 实现方式一、POI 1、什么是poi? Apache POI 是Apache 的开放源码函式库,POI提供API给java程序对office读和写的功能,包括Excel,Word,PPT等。 2、poi支持版本? 兼容2007.xlsx以下所有...

木子de小屋屋啦啦啦 1631

在java中使用jxl操作excel

jxl是一个韩国人写的java操作excel的工具, 在java的开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI(即jxl)。jxl功能相对POI比较弱一点。 但jExcelAPI对中文支持非常好,API是纯Java的, 不依赖Windows系统,即使运行在Linux下,也同样能够正确的处理Excel文件。 需要补充说明的是,jxl对图形和图表的支持很有限,

yhawaii的专栏 3万+
上一篇: Java中CallBack的理解
下一篇: 【Java】与json的使用方式
疯疯爱吃辣
博客等级 码龄15年 25粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值