`
w327569056w
  • 浏览: 1170 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

最近看了点java对excel表的操作,没事写了个例子练习了一下

阅读更多
在这个例子中我使用了一个开源的插件jxl。
初次使用,还有很多不足之处,恳请大家的指教。代码如下:

/**
*
*/
package cn.wyh.IO;

import java.io.File;

/**
* @author Administrator
*
*/
public interface JavaExcelIo {
/**
* @param fileName 要生成的文件名称与位置
*
*/
public void writeExcel(String fileName);
/**
* @param file 要读入的文件名称与位置
* @return
*/
public String readExcel(File file);
}

/**
*
*/
package cn.wyh.tool;

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;

import cn.wyh.IO.JavaExcelIo;

/**
* @author 王亚辉
*
*/
public class JavaExcelImp implements JavaExcelIo{


@Override
public String readExcel(File file) {
//读取excel文件,文件名称为file
StringBuffer sb = new StringBuffer();

Workbook wb = null;
try {
wb = Workbook.getWorkbook(file);  //创建一个工作薄
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

if(wb==null)
return null;

Sheet[] sheets = wb.getSheets();

if(sheets!=null&&sheets.length>0){
Sheet rs = wb.getSheet(0);   //创建一张sheet表
for(int row=0;row<rs.getRows();row++){
//row代表sheet(0)表中的总行数
for(int column=0;column<rs.getColumns();column++){
//column代表sheet(0)表中的总列说
Cell cell = rs.getCell(column,row);
String str = cell.getContents();
System.out.println("第"+(row+1)+"行,第"+(column+1)+"列:"+str.toString());
sb.append(str+"\t");
}
sb.append("\r\n");
}
sb.append("\r\n");
}

wb.close();
return sb.toString();
}


@Override
public void writeExcel(String fileName) {
//创建一个新的文件并写入,fileName为文件存放位置和名称
WritableWorkbook wwb = null;

try{
//首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
wwb = Workbook.createWorkbook(new File(fileName));
}catch(IOException e){
e.printStackTrace();
}

if(wwb!=null){
//创建一个可写入的工作表
//Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet("sheet1", 0);

//开始添加表格
for(int i=0;i<10;i++){
for(int j=0;j<5;j++){
//在Excel表中,第一个参数表示列,第二个参数表示行
Label labelC = new Label(j, i, "这是第"+(i+1)+"行,第"+(j+1)+"列");
try{
//将生成的单元格添加的工作表
ws.addCell(labelC);
}catch(RowsExceededException e){
e.printStackTrace();
}catch(WriteException e){
e.printStackTrace();
}
}
}
try{
//从内存中写入文件中
wwb.write();
//关闭资源,释放内存
wwb.close();
}catch(IOException e){
e.printStackTrace();
}catch (WriteException e) {
e.printStackTrace();
}
}
}

}

package test.cn.wyh.tool;


import java.io.File;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import cn.wyh.tool.JavaExcelImp;

public class JavaExcelImpTest {

@Before
public void setUp() throws Exception {
}

@After
public void tearDown() throws Exception {
}

@Test
public void testWriteExcel(){
String fileName = "E:/wyh.xls";
JavaExcelImp jei = new JavaExcelImp();
jei.writeExcel(fileName);
}

@Test
public void testReadExcel(){
String fileName = "E:/wyh.xls";
JavaExcelImp jei = new JavaExcelImp();
System.out.println(jei.readExcel(new File(fileName)));
}

}
分享到:
评论

相关推荐

    word源码java-practice:这个项目是记录自己平常的一些练习

    根据链接得到股票数据,多个线程同时运行获取股票数据,获取到一定量后再写入文件中(做这个的目的,主要是为了看看当获取到数据很多时候,应该怎么处理文件和用这个文件来做一些大数据查找相关题目的练习) 练习4 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

     《Java开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第II卷,以开发...

    PDI-tutorials

    加载 Excel 文件,保存到另外一个 Excel 文件和数据库表Table_2中。 Tutorials_3 加载 Json 文件,保存到另外一个 Json 文件和数据库表Table_2中。 Tutorials_4 REST接口的访问:通过访问新浪热刺接口,将热点新闻...

    Python核心编程第二版(ok)

     3.1.5 同一行书写多个语句(;)   3.1.6 模块   3.2 变量赋值   3.2.1 赋值操作符   3.2.2 增量赋值   3.2.3 多重赋值   3.2.4 “多元”赋值   3.3 标识符   3.3.1 合法的Python标识符 ...

    Python核心编程第二版

     3.1.5 同一行书写多个语句(;)   3.1.6 模块   3.2 变量赋值   3.2.1 赋值操作符   3.2.2 增量赋值   3.2.3 多重赋值   3.2.4 “多元”赋值   3.3 标识符   3.3.1 合法的Python标识符 ...

    asp.net知识库

    一个XSLT的简单例子 XSLXSLT板主题整理 xsl入门的好文章 新手学习XSL的好东西 XSL语法介绍 XSL学习心得 - 调用属性值 XSLT与XML转换的详细介绍 功能应用 读写搜索 基础教程 RSS Web2.0时代,RSS你会用了吗?(技术...

    测试培训教材

    QC支持的操作系统:Windows、Linux、Solaris 支持群集: 服务器端硬件和数据库要求: Windows: Linux: Solaris: 客户端系统要求: 练习1:安装QC 详见《Mercury Quality Center 9.0 ...

Global site tag (gtag.js) - Google Analytics