`

jxl读写excel

    博客分类:
  • jxl
阅读更多
Java代码 复制代码
  1. import java.io.FileInputStream;   
  2. import java.io.FileNotFoundException;   
  3. import java.io.IOException;   
  4. import java.io.InputStream;   
  5. import java.util.ArrayList;   
  6. import java.util.List;   
  7.   
  8. import jxl.Cell;   
  9. import jxl.Sheet;   
  10. import jxl.Workbook;   
  11. import jxl.read.biff.BiffException;   
  12.   
  13. public class ExcelImporter   
  14. {   
  15.   
  16.     /**  
  17.      * @Function     //函数、方法名称  
  18.      * @Description  //测试excell表格  
  19.      * @Input        //输入参数的说明  
  20.      * @Output       //输出参数的说明  
  21.      * @Return       //函数返回值的说明  
  22.      * @Others       //其它说明  
  23.      */  
  24.     public static void main(String[] args)   
  25.     {   
  26.         // TODO Auto-generated method stub   
  27.         List<String> list = new ArrayList<String>();   
  28.         String filePath = "C:/sinye.xls";   
  29.         InputStream fs = null;   
  30.                     Workbook workBook = null;   
  31.            
  32.         try {   
  33.             // 加载excel文件   
  34.             fs = new FileInputStream(filePath);   
  35.             // 得到 workbook   
  36.                 workBook = Workbook.getWorkbook(fs);   
  37.            } catch (FileNotFoundException e) {   
  38.                e.printStackTrace();   
  39.            } catch (BiffException e) {   
  40.                e.printStackTrace();   
  41.            } catch (IOException e) {   
  42.                e.printStackTrace();   
  43.            }   
  44.     
  45.               // 取得sheet,如果你的workbook里有多个sheet 可以利用 wb.getSheets()方法来得到所有的。   
  46.            // getSheets() 方法返回 Sheet[] 数组 然后利用数组来操作。就是多次循环的事。   
  47.            Sheet sheet = workBook.getSheet(0);//这里只取得第一个sheet的值,默认从0开始   
  48.            System.out.println(sheet.getColumns());//查看sheet的列   
  49.            System.out.println(sheet.getRows());//查看sheet的行   
  50.            Cell cell = null;//就是单个单元格   
  51.            // 开始循环,取得 cell 里的内容,这里都是按String来取的 为了省事,具体你自己可以按实际类型来取。或者都按   
  52.            // String来取。然后根据你需要强制转换一下。   
  53.            for (int j = 0; j < sheet.getColumns(); j++) {   
  54.                 StringBuffer sb =  new StringBuffer();   
  55.                 for (int i = 0; i < sheet.getRows(); i++) {   
  56.                     cell = sheet.getCell(j, i);   
  57.                     sb.append(cell.getContents());   
  58.                     sb.append(",");//将单元格的每行内容用逗号隔开   
  59.                 }   
  60.                 list.add(sb.toString());//将每行的字符串用一个String类型的集合保存。   
  61.            }   
  62.            workBook.close();//记得关闭   
  63.               
  64.           //迭代集合查看每行的数据   
  65.           for(String ss:list){   
  66.               System.out.println(ss);   
  67.           }   
  68.     }   
  69.   
  70. }  
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class ExcelImporter
{

	/**
	 * @Function     //函数、方法名称
	 * @Description  //测试excell表格
	 * @Input        //输入参数的说明
	 * @Output       //输出参数的说明
	 * @Return       //函数返回值的说明
	 * @Others       //其它说明
	 */
	public static void main(String[] args)
	{
		// TODO Auto-generated method stub
		List<String> list = new ArrayList<String>();
		String filePath = "C:/sinye.xls";
		InputStream fs = null;
	                Workbook workBook = null;
	    
	    try {
	        // 加载excel文件
	        fs = new FileInputStream(filePath);
	        // 得到 workbook
	            workBook = Workbook.getWorkbook(fs);
	       } catch (FileNotFoundException e) {
	    	   e.printStackTrace();
	       } catch (BiffException e) {
	    	   e.printStackTrace();
	       } catch (IOException e) {
	    	   e.printStackTrace();
	       }
 
	          // 取得sheet,如果你的workbook里有多个sheet 可以利用 wb.getSheets()方法来得到所有的。
	       // getSheets() 方法返回 Sheet[] 数组 然后利用数组来操作。就是多次循环的事。
	       Sheet sheet = workBook.getSheet(0);//这里只取得第一个sheet的值,默认从0开始
	       System.out.println(sheet.getColumns());//查看sheet的列
	       System.out.println(sheet.getRows());//查看sheet的行
	       Cell cell = null;//就是单个单元格
	       // 开始循环,取得 cell 里的内容,这里都是按String来取的 为了省事,具体你自己可以按实际类型来取。或者都按
	       // String来取。然后根据你需要强制转换一下。
	       for (int j = 0; j < sheet.getColumns(); j++) {
	    	   	StringBuffer sb =  new StringBuffer();
		        for (int i = 0; i < sheet.getRows(); i++) {
		        	cell = sheet.getCell(j, i);
		        	sb.append(cell.getContents());
		        	sb.append(",");//将单元格的每行内容用逗号隔开
		        }
		        list.add(sb.toString());//将每行的字符串用一个String类型的集合保存。
	       }
	       workBook.close();//记得关闭
	       
	      //迭代集合查看每行的数据
	      for(String ss:list){
	    	  System.out.println(ss);
	      }
	}

}

 接下来,就是写excel了,见代码:

Java代码 复制代码
  1. import java.io.File;   
  2. import java.io.FileNotFoundException;   
  3. import java.io.FileOutputStream;   
  4. import java.io.IOException;   
  5. import java.io.OutputStream;   
  6. import java.util.ArrayList;   
  7. import java.util.List;   
  8.   
  9. import jxl.Workbook;   
  10. import jxl.write.Label;   
  11. import jxl.write.WritableSheet;   
  12. import jxl.write.WritableWorkbook;   
  13. import jxl.write.WriteException;   
  14. import jxl.write.biff.RowsExceededException;   
  15.   
  16. public class JxlWriteExcel {   
  17.        
  18.     /**  
  19.      * @param datas 封装着Object[]的列表, 一般是String内容.  
  20.      * @param title 每个sheet里的标题.  
  21.      */  
  22.     public void writeExcel(OutputStream out, List list, String[] title) {   
  23.         if(list == null) {   
  24.             throw new IllegalArgumentException("要写入excel的数据不能为空!");   
  25.         }   
  26.         try {   
  27.             WritableWorkbook workbook = Workbook.createWorkbook(out);   
  28.             WritableSheet ws = workbook.createSheet("sheet 1"0);//创建sheet   
  29.             int rowNum = 0;    //要写的行,jxl操作excel时,第一行是从0开始,以此类推   
  30.             if(title != null) {   
  31.                 putRow(ws, 0, title);//压入标题   
  32.                 rowNum = 1;   
  33.             }   
  34.             for(int i=0; i<list.size(); i++, rowNum++) {//写sheet   
  35.                 Object[] cells = (Object[]) list.get(i);   
  36.                 putRow(ws, rowNum, cells);    //压一行到sheet   
  37.             }   
  38.             workbook.write();   
  39.             workbook.close();    //一定要关闭, 否则没有保存Excel   
  40.         } catch (RowsExceededException e) {   
  41.             System.out.println("jxl write RowsExceededException: "+e.getMessage());   
  42.         } catch (WriteException e) {   
  43.             System.out.println("jxl write WriteException: "+e.getMessage());   
  44.         } catch (IOException e) {   
  45.             System.out.println("jxl write file i/o exception!, cause by: "+e.getMessage());   
  46.         }   
  47.     }   
  48.   
  49.     private void putRow(WritableSheet ws, int rowNum, Object[] cells) throws RowsExceededException, WriteException {   
  50.         for(int j=0; j<cells.length; j++) {//写一行   
  51.             Label cell = new Label(j, rowNum, ""+cells[j]);   
  52.             ws.addCell(cell);   
  53.         }   
  54.     }   
  55.        
  56. }  
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class JxlWriteExcel {
    
    /**
     * @param datas 封装着Object[]的列表, 一般是String内容.
     * @param title 每个sheet里的标题.
     */
    public void writeExcel(OutputStream out, List list, String[] title) {
        if(list == null) {
            throw new IllegalArgumentException("要写入excel的数据不能为空!");
        }
        try {
            WritableWorkbook workbook = Workbook.createWorkbook(out);
            WritableSheet ws = workbook.createSheet("sheet 1", 0);//创建sheet
            int rowNum = 0;    //要写的行,jxl操作excel时,第一行是从0开始,以此类推
            if(title != null) {
                putRow(ws, 0, title);//压入标题
                rowNum = 1;
            }
            for(int i=0; i<list.size(); i++, rowNum++) {//写sheet
                Object[] cells = (Object[]) list.get(i);
                putRow(ws, rowNum, cells);    //压一行到sheet
            }
            workbook.write();
            workbook.close();    //一定要关闭, 否则没有保存Excel
        } catch (RowsExceededException e) {
            System.out.println("jxl write RowsExceededException: "+e.getMessage());
        } catch (WriteException e) {
            System.out.println("jxl write WriteException: "+e.getMessage());
        } catch (IOException e) {
            System.out.println("jxl write file i/o exception!, cause by: "+e.getMessage());
        }
    }

    private void putRow(WritableSheet ws, int rowNum, Object[] cells) throws RowsExceededException, WriteException {
        for(int j=0; j<cells.length; j++) {//写一行
            Label cell = new Label(j, rowNum, ""+cells[j]);
            ws.addCell(cell);
        }
    }
    
}

 调用写excel的测试代码

Java代码 复制代码
  1. import java.io.File;   
  2. import java.io.FileNotFoundException;   
  3. import java.io.FileOutputStream;   
  4. import java.io.IOException;   
  5. import java.io.OutputStream;   
  6. import java.util.ArrayList;   
  7. import java.util.List;   
  8.   
  9. public class Test1 {   
  10.             public static void main(String[] args) {   
  11.     // TODO Auto-generated method stub   
  12.     List list = new ArrayList();   
  13.     //组装写入excel的数据   
  14.         for(int i=0;i<10;i++){   
  15.             String[] data = {"开心"+i,"2"+i};   
  16.             list.add(data);   
  17.         }   
  18.         try {   
  19.             OutputStream out = new FileOutputStream(new File("c:\\sinye.xls"));   
  20.             JxlWriteExcel jxlExcelWriter = new JxlWriteExcel();   
  21.             jxlExcelWriter.writeExcel(out, list, new String[] {"姓名""年龄"});   
  22.             out.close();   
  23.         } catch (FileNotFoundException e) {   
  24.             e.printStackTrace();   
  25.         } catch (IOException e) {   
  26.             e.printStackTrace();   
  27.         }   
  28.     }   
  29. }  
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

public class Test1 {
            public static void main(String[] args) {
	// TODO Auto-generated method stub
	List list = new ArrayList();
	//组装写入excel的数据
        for(int i=0;i<10;i++){
        	String[] data = {"开心"+i,"2"+i};
        	list.add(data);
        }
        try {
            OutputStream out = new FileOutputStream(new File("c:\\sinye.xls"));
            JxlWriteExcel jxlExcelWriter = new JxlWriteExcel();
            jxlExcelWriter.writeExcel(out, list, new String[] {"姓名", "年龄"});
            out.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

分享到:
评论

相关推荐

    JXL读写Excel小例子

    读取Excel文件同样简单。以下代码演示了如何打开一个已存在的Excel文件并读取其内容: ```java import jxl.Workbook; import jxl.Sheet; import jxl.Cell; import jxl.read.biff.BiffException; import java.io....

    JXL读写EXCEL示例

    读取Excel文件: 1. 创建一个`Workbook`对象:这是JXL中的核心类,代表整个Excel工作簿。你可以通过`Workbook.getWorkbook(File)`方法打开一个现有的Excel文件。 ```java File excelFile = new File("path_to_your_...

    JXL 读取EXCEL

    标题 "JXL 读取EXCEL" 涉及到的是使用Java Excel Library(简称JXL)这个开源库来处理Microsoft Excel文件。JXL是一个强大的工具,它允许开发者在Java程序中读取、写入和修改Excel文件。下面将详细介绍JXL库以及如何...

    jxl读写excel数据,输出图片

    使用JXL,我们可以读取Excel文件中的数据,包括文本、数字、日期等。以下是一个简单的示例,展示如何读取Excel文件: ```java WritableWorkbook workbook = Workbook.getWorkbook(new File("input.xls")); Sheet ...

    jxl读取Excel文件

    NULL 博文链接:https://zhouyq.iteye.com/blog/272883

    JXL读写Excel例子demo

    在"JXL读写Excel例子demo"中,我们将探讨如何利用JXL库来处理Excel数据。这个示例程序包含了一个名为"Jxl读写Excel例子demo.jxl.jar"的库文件,它是JXL库的实现,可以集成到Java项目中以处理Excel文件。 JXL库提供...

    ExcelDemo_Excel导出_下载_POI读excel_JXL读写excel_java读写excel_列宽_读取合并或拆分单元格内容

    以下是一个使用JXL读取Excel文件的示例: ```java import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write....

    JXL读写Excel源码

    在Android开发中,JXL可以帮助我们创建、更新或读取Excel文件,这对于数据存储、报告生成或测试自动化等场景非常有用。 在描述中提到,由于作者正在从事安卓测试工作,所以回顾并使用了JXL。尽管Android原生并不...

    使用jxl读取Excel表格数据

    "使用jxl读取Excel表格数据"这个主题就是关于如何利用jxl库来实现这一目标。jxl是一个开源的Java库,它提供了对Microsoft Excel文件格式的支持,使得在Java中操作Excel变得简单。 首先,你需要获取jxl的jar包。由于...

    jxl读取excel的java代码小程序

    在这个"jxl读取excel的java代码小程序"中,我们将探讨如何利用JXL库来实现Excel文件的读取操作。 首先,我们需要在项目中引入JXL库。如果使用Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    Jxl读写Excel例子demo(2)

    本示例“Jxl读写Excel例子demo(2)”将详细解释如何利用jxl.jar库进行Excel文件的操作。 首先,我们需要理解Jxl库的核心概念。Jxl提供了对Excel文件格式的全面支持,包括单元格类型(文本、数字、日期等)、样式...

    java利用jxl读取excel文件

    使用`jxl`库读取Excel文件主要涉及以下步骤: 1. **导入必要的库**:在Java源代码中,你需要导入`jxl`相关的包。例如: ```java import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; ...

    jxl读取Excel报表

    标题中的“jxl读取Excel报表”指的是利用jxl库来操作Excel文件,特别是从Excel文件中提取数据以进行分析或进一步处理。以下是对这个主题的详细讲解: 首先,`jxl.jar`是jxl库的主要组件,它支持读取和写入Microsoft...

    jxl的excel读写操作

    2. **读取Excel文件** 使用`Workbook`类来打开Excel文件。以下是一个基本示例: ```java Workbook workbook = Workbook.getWorkbook(new File("yourfile.xls")); Sheet sheet = workbook.getSheet(0); // 获取第...

    jxl读取excel数据(带实例)

    本文将详细介绍如何使用JXL库来读取Excel数据,并通过一个实际的代码示例进行演示。 首先,你需要在项目中引入JXL库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    用JXL读写excel到数据库实例

    使用jxl,读写excel数据进数据库的例子。 需要jxl.jar、poi-2.0-final-20040126.jar、mysql-connector-java-3.0.8-stable-bin.jar、jakarta-poi-1.5.1-final-20020615.jar。

    jxl读写excel源码

    Java编程语言提供了多种库来处理Excel文件,其中jxl是一个广泛使用的开源库,它使得在Java应用程序中读取和写入Excel文件变得简单。本文将详细介绍如何使用jxl库进行Excel文件的读写操作,以及适合初学者的关键知识...

    jsp+jspsmart上传+poi3.8读取excel2007+jxl读取excel2003

    在给定的标题和描述中,"jsp+jspsmart上传+poi3.8读取excel2007+jxl读取excel2003" 提到了一种结合Java Web技术实现文件上传,并通过不同库解析Excel文件的解决方案。这里我们将详细探讨涉及的各个知识点。 首先,`...

    利用jxl读取Excel代码的完整内容,包括jar包

    本篇将详细介绍如何利用jxl库读取Excel文件,并提供一个完整的代码示例。 首先,jxl库提供了一个方便的API,让我们能够轻松地与Excel文件交互。要使用jxl,你需要下载jxl.jar文件,并将其添加到你的项目类路径中。...

    POI和JXL读取EXCEL数据的工具类(POI支持2007)

    本主题将详细讲解如何使用Apache POI和JExcelApi(JXL)这两个Java库来读取Excel文件,以及提供的工具类`PoiUtil.java`和`JxlUtil.java`的使用方法。 Apache POI是一个流行的开源库,它允许开发者创建、修改和显示...

Global site tag (gtag.js) - Google Analytics