`
zengshaotao
  • 浏览: 787663 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java excel

    博客分类:
  • java
 
阅读更多

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import com.lll.util.Jobs;
import com.lll.util.JobsDA;

import jxl.Cell;
import jxl.CellType;
import jxl.DateCell;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

/**
* 实现生成excel文件并且把pubs表里的数据写倒excel中
* @author
*
*/
public class TestWrite {

//创建excel文件
public void createExcel(String path){
   try {
           //在path路径下建立一个excel文件
    WritableWorkbook wbook=Workbook.createWorkbook(new File(path));
    //创建一个工作表 第一个工作区
    WritableSheet wsheet=wbook.createSheet("pubs数据库jobs表的信息", 0);
    //设置excel里的字体
    WritableFont wf=new WritableFont(WritableFont.ARIAL,12,WritableFont.NO_BOLD,false);
    //给标题规定字体的格式
    WritableCellFormat titleFormat=new WritableCellFormat(wf);
  
    String[] title={"job_id","job_desc","min_lvl","max_lvl"};
    //设置表头
    for(int i=0;i<title.length;i++){
     //一列列的打印表头 按照我们规定的格式
     Label excelTitle=new Label(i,0,title[i],titleFormat);
   
     //把标头加到我们的工作区
     wsheet.addCell(excelTitle);
    }
  
    int lll=1;//用于循环excel的行号
  
    //把jobs表里的数据提取出来
    List zhi=new JobsDA().jobsSelect();
  
    for(int i=0;i<zhi.size();i++){
     Jobs job=(Jobs)zhi.get(i);
     Label jobid=new Label(0 , lll ,job.getJobId().toString());
     Label jobdesc=new Label(1 ,lll ,job.getJobDesc());
     Label minlvl=new Label(2 , lll ,job.getMinLvl().toString());
     Label maxlvl=new Label(3 , lll ,job.getMaxLvl().toString());
   
     //把值加到工作表中
     wsheet.addCell(jobid);
     wsheet.addCell(jobdesc);
     wsheet.addCell(minlvl);
     wsheet.addCell(maxlvl);
   
     lll++;
    }
    //写入文件
    wbook.write();
    wbook.close();
    System.out.println("创建成功!");
   } catch (Exception e) {
    // TODO: handle exception
   }
}

//读取excel文件

public void readExcel(String path){
   try {
    //获得excel文件
    Workbook bk=Workbook.getWorkbook(new File(path));
    //获得工作表的对象 第一个 从0开始下标
    Sheet sheet=bk.getSheet(0);
  
    //获得第一行第一列的单元格
    Cell cell1=sheet.getCell(1,0);
    //获得他的值
    String content=cell1.getContents();
  
    //创建单元格对象
    Cell cell=null;
    String data="";
    //循环遍历数据
    //行
    for(int i = 0;i< sheet.getRows();i++){
     //列
     for(int j = 0;j< sheet.getColumns();j++){
      cell=sheet.getCell(j,i);//注意 先是列 后是行
    
      if(cell.getType() == CellType.LABEL){//如果数据类型是label的
       data+=cell.getContents()+"\t\t\t\t\t\t";
      }else if(cell.getType() == CellType.NUMBER){//如果数据类型是number类型的
       NumberCell nc=(NumberCell)cell;
       data+=nc.getValue()+"\t\t\t\t\t\t";
      }else if(cell.getType() == CellType.DATE){
       DateCell cd=(DateCell)cell;
       data+=cd.getDate()+"\t\t\t\t\t\t";
      }
     }
     data+="\n";
    }
    System.out.println(sheet.getRows()+"-------------"+sheet.getColumns());
    System.out.println(data);
    bk.close();
   } catch (Exception e) {
    // TODO: handle exception
   }
 
 
}

//将excel里的数据读取出来放到arraylist中
public ArrayList excelArray(String path){
   ArrayList<Jobs> list = new ArrayList<Jobs>();
   Jobs data = null;
     // 创建单元格对象
     Cell cell = null;
     try {
      // 获取 excel文件
      Workbook book = Workbook.getWorkbook(new File(path));
      // 获取 第一个 工作表对象
      Sheet sheet = book.getSheet(0);
      // 循环行
      for (int i = 1; i < sheet.getRows(); i++) {
       data = new Jobs();
       for (int j = 0; j < sheet.getColumns(); j++) {
        cell = sheet.getCell(j, i);//获取第i+1行第j+1列的单元格
        switch (j) {
        case 0:
         data.setJobId(Short.parseShort(cell.getContents().toString()));
         break;
        case 1:
         data.setJobDesc(cell.getContents());
         break;
        case 2:
         data.setMinLvl(Short.parseShort(cell.getContents()));
         break;
        case 3:
        data.setMaxLvl(Short.parseShort(cell.getContents()));
         break;
        }
       }
       list.add(data);
      }
      book.close();
     } catch (Exception e) {
      e.printStackTrace();
     }
     return list;
}

public static void main(String[] args) {
   new TestWrite().createExcel("F:\\a.xls");
 
   //new TestWrite().readExcel("F:\\a.xls");
   //System.out.println(new TestWrite().excelArray("F:\\a.xls").size());
}
}




备注内容

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();

3. String getVersion()返回正在使用的API的版本号,好像是没什么太大的作用。

jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
String apiVersion = rwb.getVersion();

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)获取某一行的所有单元格,返回的是单元格对象数组,示例子:

jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
Cell[] cell = rs.getRow(0);

6) Cell getCell(int column, int row)获取指定单元格的对象引用,需要注意的是它的两个参数,第一个是列数,第二个是行数,这与通常的行、列组合有些不同。

jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
Cell cell = rs.getCell(0, 0);

分享到:
评论

相关推荐

    java excel转html

    Java提供了多种库来实现这样的功能,这些库通常能够处理不同版本的Excel文件,包括32位和64位系统上的文件。 首先,我们需要了解Java中的主要库,如Apache POI和JExcelAPI,它们是用于读取和操作Excel文件的流行...

    Java Excel Api及详细教程

    Java Excel API是一个强大的工具,允许Java开发者方便地读取、写入和操作Microsoft Excel文件。在Eclipse这样的集成开发环境中,使用Java Excel API可以轻松处理各种Excel数据操作任务。本教程将详细介绍如何在...

    javaEXCEL

    JavaExcel是一个广泛使用的术语,指的是使用Java处理Excel文件的相关技术,特别是Apache POI库。Apache POI是一个开源项目,允许Java开发者读取、写入和修改Microsoft Office格式的文件,其中包括Excel(.xlsx和.xls...

    Java Excel比较代码 poi

    Java Excel比较代码主要涉及到的是Apache POI库的使用,这是一个强大的API,允许Java开发者读取、写入和修改Microsoft Office格式的文件,包括Excel。在本项目中,它被用来对比两个Excel工作表中的数据差异。 ...

    JavaExcel

    JavaExcel是一个纯Java实现的Excel操作组件,它允许开发者在Java应用程序中轻松地读取、创建和修改Excel文件。这个组件通常被称为JExcelAPI,它提供了丰富的API接口,使得处理Excel数据变得简单而高效。JExcelAPI...

    java excel 生成6级级联

    java excel 生成6级级联。加一个poi.jar就行。

    基于SpringBoot、JDBC、Mybatis和EasyExcel的Java Excel批量导入导出设计源码

    该项目是一款基于SpringBoot、JDBC、Mybatis和EasyExcel的Java Excel批量导入导出解决方案源码,包含22个文件,其中包括10个Java源文件、2个Markdown文件、2个XML文件、1个Git忽略文件、1个JAR包文件、1个属性文件、...

    JAVA EXCEL API简介

    Java Excel API 是一个开源项目,专门用于在Java环境中处理Excel文件。这个API使得开发者无需依赖Windows操作系统,就能在任何平台上创建、读取和修改Excel文件。由于它是用Java编写的,因此非常适合在Web应用程序中...

    JAVA Excel API教程.pdf

    ### JAVA Excel API教程知识点概述 #### 一、Java Excel API简介 Java Excel API是一种用于处理Microsoft Excel文件(.xls和.xlsx格式)的强大工具。通过Java Excel API,开发人员能够轻松地在Java应用程序中读取、...

    java Excel导出导入

    java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入

    javaExcel大数据导出

    "javaExcel大数据导出"这个话题涉及到的主要知识点包括:Java与Excel的交互、大数据处理策略、性能优化以及内存管理。 1. **Java与Excel的交互**: Java可以通过多种库来实现与Excel的交互,如Apache POI、...

    java Excel相关处理 java Excel相关处理

    java Excel相关处理 java Excel相关处理java Excel相关处理 java Excel相关处理java Excel相关处理 java Excel相关处理java Excel相关处理 java Excel相关处理java Excel相关处理 java Excel相关处理java Excel相关...

    java Excel写入导出

    Java Excel写入与导出是Java开发者在处理数据时经常遇到的任务,特别是在数据分析、报表生成或者数据导入导出等场景。这项技术主要依赖于Apache POI库,它是一个开源项目,提供了读取、写入Microsoft Office格式文件...

    JavaExcel导出示例

    本示例主要关注如何使用Apache POI库来实现JavaExcel导出功能。Apache POI是一个开源项目,它提供了读取和写入Microsoft Office格式文件的能力,包括Excel。 首先,你需要在你的项目中引入Apache POI依赖。如果你...

    java excel api

    Java Excel API,通常指的是jxl库,是一个广泛使用的开源Java库,用于读写Microsoft Excel文件。这个库使得在Java程序中处理Excel数据变得极其便捷,无论是读取现有的工作簿、创建新的工作簿,还是修改现有表格,jxl...

    java Excel工具类与LIB

    Java Excel工具类与LIB指的是在Java编程环境中处理Excel文件的一系列方法和库。这些工具能够帮助开发者轻松地创建、读取、修改Excel文件,并且能够将Excel数据转换为Java对象,反之亦然。这里提到的"XLSUtils.java...

    java excel tree

    在Java编程领域,生成Excel报表是一项常见的任务,尤其在数据可视化和组织结构管理中。"java excel tree"这个主题正是关于如何使用Java来创建一个基于Excel的组织架构报表,它利用了组合模式和一系列算法来实现自动...

    免费Java Excel类库-Free Spire.XLS for Java-2.2.0

    Free Spire.XLS for Java是一款专门针对Java平台的开源Excel处理类库,它允许开发者在Java应用程序中创建、读取、修改和导出Excel文件。这个版本为2.2.0,提供了丰富的功能和易用的API,使得与Excel文件交互变得更加...

    JAVA Excel日历控件

    Java Excel日历控件是一种在Java应用程序中用于展示和交互日期选择的组件,它使得用户能够方便地在GUI(图形用户界面)中处理日期相关的任务。这种控件通常被集成到Java Swing或JavaFX框架中,以提供类似Excel中日历...

Global site tag (gtag.js) - Google Analytics