import java.io.File;
import java.io.IOException;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

/**
 *
 * @ClassName: ExcelOperate
 * @Description: TODO(使用jxl简单实现Excel导入导出)
 * @date 2016年8月3日 下午2:12:53
 *
 */

public class ExcelOperate {
    public static void main(String[] args) {
        //writeToFile();
//        /this.readFromFile();
    }
    int col=100,row =100;
    
    /**
     *
     * @Title: ExcelOperate
     * @Description: TODO(读取excel文件里的内容)
     * @param @param path    设定文件
     * @return @param path    返回类型
     * @throws
     */
    public boolean readExcel(String path){
        boolean flag=false;
        File file = new File(path);
//        File file = new File("C:/Users/Administrator/Desktop/mmonitor.xls");
        StringBuffer sb = new StringBuffer();
        try {
            Workbook book = Workbook.getWorkbook(file);//拿到excel工作空间
            try{
                Sheet sheet = book.getSheet(0);
                col = book.getSheet(0).getColumns();//获取excel文件有列
                row = book.getSheet(0).getRows();//获取excel文件有行
                System.out.println(col+"=="+row);
                for(int i = 1 ; i < col ; i++){
                    for(int j = 1 ; j <row ; j++){
                        //第一个参数代表列,第二个参数代表行。(默认起始值都为0)
                        try{
                            Cell jj =sheet.getCell(j, i);//获取excel单个格子
                            if(jj!=null){
                                String cont=jj.getContents();//获取格子的内容
                                sb.append(cont+"\t");
                                System.out.println(cont);
                            }
                        }catch(Exception e){
                            System.out.println("这个表格没有值");
                        }
                    }
                    sb.append("\n");
                }
                flag=true;
                //System.out.println(sb);
            }finally{
                if(book != null){
                    book.close();
                }
            }
        } catch (BiffException e) {
            System.err.println(e+"");
        } catch (IOException e) {
            System.err.println(e+"文件读取错误");
        }
        return flag;
    }//end readFromFile
    
    //witeToFile
    public  void writeToFile(){
        File file = new File("C:/Users/Administrator/Desktop/mmonitor.xls");
        try {
            
            WritableWorkbook book = Workbook.createWorkbook(file);
            //创建一个工作区。(默认的excel文件有三个sheet,在excel的左下角可以看到sheet1/sheet2/sheet3)
            WritableSheet sheet = book.createSheet("第一页", 0);
            //在工作区上面添加内容
            try {
                for(int i = 0; i < 10 ; i ++ ){
                    for(int j = 0 ; j < 10 ; j++){
                        Label newLabel;
                        if(0 == i){
                            //第一个参数代表列,第二个参数代表行(默认起始值都为0),第三个参数是要在单元格里面填写的内容发
                            newLabel = new Label(j,i,String.valueOf("的"));
                        }else if(0 == j){
                            newLabel = new Label(j,i,String.valueOf("的"));
                        }else{
                            newLabel = new Label(j,i,String.valueOf("的"));
                        }
                        //在单元格上面添加注释
//                        WritableCellFeatures cellFeatures = new WritableCellFeatures();
//                        cellFeatures.setComment("这里是"+i+"*"+j+"的值");
//                        System.out.println("这里是"+i+"*"+j+"的值");
//                        newLabel.setCellFeatures(cellFeatures);
                        sheet.addCell(newLabel);
                    }
                }
            } catch (RowsExceededException e) {
                System.err.println(e+"行或列参数错误!");
            } catch (WriteException e) {
                System.err.println(e+"写入失败");
            }finally{
                if(book != null){
                    book.write();
                    try {
                        book.close();
                    } catch (WriteException e) {
                        System.err.println(e+"文件关闭失败!");
                    }
                }
            }
            
        } catch (IOException e) {
            System.err.println(e+"创建文件失败!");
        }
    }
    
    
}

简单excel导入导出的更多相关文章

  1. 一个基于POI的通用excel导入导出工具类的简单实现及使用方法

    前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴. ...

  2. Mego(04) - NET简单实现EXCEL导入导出

    前言 相信做过信息系统的朋友都会遇到EXCEL导入导出的相关开发,做过不少EXCEL导入导出后总结起来大致有如下几种方式实现: ADO.NET的OldDb或ODBC连接EXCEL使用DataTable ...

  3. Excel导入导出工具(简单、好用且轻量级的海量Excel文件导入导出解决方案.)

    Excel导入导出工具(简单.好用且轻量级的海量Excel文件导入导出解决方案.) 置顶 2019-09-07 16:47:10 $9420 阅读数 261更多 分类专栏: java   版权声明:本 ...

  4. Excel导入导出的业务进化场景及组件化的设计方案(上)

    1:前言 看过我文章的网友们都知道,通常前言都是我用来打酱油扯点闲情的. 自从写了上面一篇文章之后,领导就找我谈话了,怕我有什么想不开. 所以上一篇的(下)篇,目前先不出来了,哪天我异地二次回忆的时候 ...

  5. 关于Excel导入导出的用例设计

    目前,为方便操作,很多系统都会增加批量导入导出的功能.文件导入导出一般格式都是excel.由于用户直接在excel在填写内容,无法控制填写的格 式,加上excel解析比较困难,所以一般涉及到excel ...

  6. Octopus——excel导入导出工具

    Octopus Octopus是一个简易的Excel导入导出工具.目前主要就两个功能: 导入:将excel中一行数据转换为指定的java对象,并通过指定的正则表达式检查合法性. 导出:按照给定的xml ...

  7. JeeSite中Excel导入导出

    在各种管理系统中,数据的导入导出是经常用到的功能,通常导入导出以Excel.CSV格式居多.如果是学习的过程中,最好是自己实现数据导入与导出的功能,然而在项目中,还是调用现成的功能比较好.近期一直使用 ...

  8. 土制Excel导入导出及相关问题探讨

    转载请注明出处https://www.cnblogs.com/funnyzpc/p/10392085.html 新的一年,又一个开始,不见收获,却见年龄,好一个猪年,待我先来一首里尔克的诗: < ...

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

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

随机推荐

  1. 如何发布第一个属于自己的npm包 到公网

    发布前的准备 1. 注册一个npm账号 前往NPM官网进行注册 2. 创建一个简单的包 在本地创建一个项目文件夹 mannymu_demo (名字自己取,不要和NPM上已有的包名重复冲突就好)然后通过 ...

  2. Windows平台ping测试局域网所有在用IP

    由于工作需要,我在家里搭建了很多VM,同时智能家居设备也占用了很多IP.平日偶尔会有确认局域网内哪些IP目前在用的需求. 这个需求很简单,直接从网上也可以搜索到很多答案,最终找到一个经实际测试可用的方 ...

  3. phpcms栏目点击选中

    点击选中(没有二级栏目) {pc:content action="category" catid="0" num="4" siteid=&q ...

  4. DataTables页面列点击排序

    <!-- DataTables --> <script type="text/javascript" charset="utf8" src=& ...

  5. java.lang.ClassCastException: com.sun.proxy.$Proxy* cannot be cast to***

    Spring AOP 有两种代理方法, 一种是常规JDK,一种是CGLIB. 当代理对象实现了至少一个接口时,默认使用JDK动态创建代理对象: 当代理对象没有实现任何接口时,就会使用CGLIB方法. ...

  6. C++ Com控件调用

    1.假如我们创建的Com组件的工程名叫TestCom,在其中添加了一个接口叫MyCom,接口名会自动命名为IMyCom,在其中添加两个方法,分别为: HRESULT Add([in] long n1, ...

  7. php window系统 xdebug+phpstorm 本地断点调试使用教程

    运行环境: phpStorm 2017.2 PHP 7.1.5 Xdebug 2.6.1 php.ini添加xdebug模块 你需要仔细分析和选择要下载的对应版本,否则无法调试.由于非常容易出错,建议 ...

  8. jmeter基本使用

    下载安装,推荐官网http://jmeter.apache.org/download_jmeter.cgi 安装步骤不做赘述,可以看这篇博文https://blog.csdn.net/u0103401 ...

  9. 最短路径之Bellman-Ford算法的队列优化及邻接表

    参考链接:https://blog.csdn.net/qq_40626497/article/details/81139344

  10. C#方法过滤器

    方法过滤器 使用Emit和注解属性Attribute实现 使用方式 1. 自定义方法过滤器 可分别定义方法执行前过滤器, 方法执行结束过滤器, 方法异常过滤器 执行前过滤器继承 ExecutingFi ...