通过jxl.jar 读取、导出excel的实例代码

代码如下:

package export.excel;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import export.vo.PersonVo;

/**导出excel文件
 *
 * @author 路人甲
 *
 */
public class ExportExcel {

public List<PersonVo> personVoList;

public ExportExcel()
 {
  initdata();
 }

/**
  * 初始化数据
  */
 public void initdata()
 {
  // 随机函数
  Random random = new Random();
  personVoList = new ArrayList<PersonVo>();
  // 初始化100个人进集合
  PersonVo personVo = null;
  for (int i = 0; i < 100; i++)
  {
   personVo = new PersonVo();
   personVo.setId("" + i);
   personVo.setName("路人" + i);
   if (i%2==0)
   {
    personVo.setSex("男");
   }
   else
   {
    personVo.setSex("女");
   }
   // 取100岁以内的随机年龄
   personVo.setAge("" + random.nextInt(100));
   personVoList.add(personVo);
  }
 }

/**导出数据以Excel格式导出
  * exportName 导出文件名称
  * @param exportName
  */
 public void exportPerson(String exportName)
 {
  try{
   File excelFile = new File(exportName + "Temp.xls");
   // 文件格式
   WritableCellFormat format = new WritableCellFormat();
   // x  靠左
   format.setAlignment(Alignment.RIGHT);
   // y 靠顶
   format.setVerticalAlignment(VerticalAlignment.TOP);

// 创建一个工作文件
   WritableWorkbook writableWorkbook = Workbook.createWorkbook(excelFile);
   // 创建一个工作簿
   WritableSheet sheet1 = writableWorkbook.createSheet("个人信息列表", 0);
   //创建行数 设置行的宽度
   sheet1.setColumnView(0, 10);
   sheet1.setColumnView(1, 10);
   sheet1.setColumnView(2, 10);
   sheet1.setColumnView(3, 10);
   // 设置行的值
   sheet1.addCell(new Label(0, 0, "ID", format));
   sheet1.addCell(new Label(1, 0, "姓名", format));
   sheet1.addCell(new Label(2, 0, "性别", format));
   sheet1.addCell(new Label(3, 0, "年龄", format));

// 把集合写入到excel中
   int rowNum = 1;
   for (PersonVo bean : personVoList)
   {
    int colspanNum = 0;
    sheet1.addCell(new Label(colspanNum, rowNum, bean.getId(), format));
    sheet1.addCell(new Label(colspanNum++, rowNum, bean.getName(), format));
    sheet1.addCell(new Label(colspanNum++, rowNum, bean.getSex(), format));
    sheet1.addCell(new Label(colspanNum++, rowNum, bean.getAge(), format));

rowNum++;
   }

writableWorkbook.write();
   writableWorkbook.close();
//   如果是在网络下载的,那么就写这些
//            super.getHttpServletResponse().setContentType("application/x-msdownload");
//            String encodetittle = new String(excelName.getBytes("GBK"), "ISO-8859-1");
//            super.getHttpServletResponse().addHeader("Content-Disposition","attachment;filename="+encodetittle+".xls");
            FileInputStream finput = new FileInputStream(excelFile);
//            OutputStream output = super.getHttpServletResponse().getOutputStream();
            File fout = new File(exportName + ".xls");
            OutputStream output = new FileOutputStream(fout);
            BufferedInputStream buffin = new BufferedInputStream(finput);
            BufferedOutputStream buffout = new BufferedOutputStream(output);
            byte[] buffer = new byte[4096];
            int count = 0;
            while ((count = buffin.read(buffer, 0, buffer.length)) > 0) {
                buffout.write(buffer, 0, count);
            }
            buffin.close();
            buffout.close();
            finput.close();
            output.close();
            excelFile.delete();
  }
  catch (Exception e) {
   e.printStackTrace();
  }
  finally
  {
   System.out.println("完成导出操作");
  }

}

/**导入数据以Excel格式导出
  *
  * @param importExcel 导入Excel文件名称
  */
 public void importPerson(String importExcel)
 {
  try{
   File excelFile = new File(importExcel+".xls");
   // 创建一个工作文件
   Workbook workbook = Workbook.getWorkbook(excelFile);
   // 获得第一个工作簿 这里有两种方法获取sheet表,1为名字,而为下标,从0开始
   Sheet sheet = workbook.getSheet(0);
   // 总记录数
   int allRow = sheet.getRows();
   int allColspan = sheet.getColumns();
   System.out.println(allRow);
   System.out.println(allColspan);
   // 取数据
   for (int i=0; i<allRow; i++)
   {
    // 取出每一列的值
    for (int j=0; j<allColspan; j++)
    {
//     sheet.getCell(列数, 行数);
     Cell cell = sheet.getCell(j, i);
     // 打印出该列的值
     System.out.print(cell.getContents() + "\t");
    }
    System.out.println();
   }
   //关闭
   workbook.close();
  }catch (Exception e) {
   e.printStackTrace();
  }
  finally
  {
   System.out.println("完成导入操作");
  }
 }

/**
  * @param args
  */
 public static void main(String[] args) {

ExportExcel exportExcel = new ExportExcel();
  // 设置路径
  String srcPath = "C:/Quarantine/PersonVo";
//  导出
//  exportExcel.exportPerson(srcPath);
  // 读取
  exportExcel.importPerson(srcPath);
 }

}

(0)

相关推荐

  • jxl操作excel写入数据不覆盖原有数据示例

    需要导入的包:jxl.jar 复制代码 代码如下: public void readTO() {        Workbook wb = null;        WritableWorkbook wwb = null;        try {            File is = new File(System.getProperty("user.dir") + "\\in.xls");            File os = new File(Syst

  • Java使用jxl包写Excel文件适合列宽实现

    注意,这个只是基本可以实现,基本针对中文电子报表. 1.实现思路(1)一般的中文汉字占位长度是英文字母的2倍,"方块字"很统一.(2)对于要写入Excel中的数据统计每一列的最大列宽,最后直接将这一列的列宽设置为这个列的最大值即可. 2.实现代码 复制代码 代码如下: import java.io.File;import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import jav

  • android通过jxl读excel存入sqlite3数据库

    复制代码 代码如下: package com.demo.day20140228; import java.io.File;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;import java.sql.Statement; import jxl.Cell;import jxl.Sheet;import jx

  • java创建excel示例(jxl使用方法)

    使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表.因为是使用 Java编写的,所以我们在Web应用中可以通过JSP.Servlet来调用API实现对Excel数据表的访问. 复制代码 代码如下: package com.yonyou.test; import java.io.File;import java.io.IOException; import jxl.Workbook;import jxl.format.Alignment;import jxl.for

  • jquery使用jxl插件导出excel示例

    复制代码 代码如下: function formattable(tableHtml, sheetName) { var template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">&l

  • java 中JXL操作Excel实例详解

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

  • python技能之数据导出excel的实例代码

    本文介绍了python技能之导出excel的实例代码,正好能用到,写出来分享给大家 作为一个数据分析师,下面的需求是经常会遇到的. 从数据库或者现有的文本文件中提取符合要求的数据,做一个二次处理,处理完成后的数据最终存储到excel表格中供其他部门的人继续二次分析. 在这里Excel作为一个必不可少桥梁,合适的工具和方法可以避免我们将处理完的数据耗费时间一行行复制黏贴过去. python编程也是一个数据分析师的必备技能,你永远无法预料你的数据会来自哪里,需要经过怎样复杂的过滤,筛选,排序,组合处

  • django使用xlwt导出excel文件实例代码

    本文研究的主要是记录一下下导出的方法,并没有做什么REST处理和异常处理. 维护统一的style样式,可以使导出的数据更加美观. def export_excel(request): # 设置HttpResponse的类型 response = HttpResponse(content_type='application/vnd.ms-excel') response['Content-Disposition'] = 'attachment;filename=user.xls' # new一个文

  • 通过jxl.jar 读取、导出excel的实例代码

    复制代码 代码如下: package export.excel; import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.OutputStream;import java.util.ArrayList;import j

  • Java web的读取Excel简单实例代码

    目录结构: Data.xls数据: 后台页面: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //System.out.println(this.getServletContext().getRealPath ("/")); try{ Workbook wb = Workbook.getWorkbook(

  • java基于poi导出excel透视表代码实例

    这篇文章主要介绍了java基于poi导出excel透视表代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从前,我是一个前端程序猿,怀着对打通任(前)督(后)二(开)脉(发)的梦想转了后端,自学两礼拜java+spring全家桶,直接上项目实战.最近接到一需求:将业务数据导出一张透视表. 需求开发完成已近有一段时间了,甲方的大爷大妈,爷爷奶奶们也都用的很开心,我也很开心,于是就心想咱学了也不能白学,所以写下这篇随笔. 先看下用easypo

  • Android 操作excel功能实例代码

    学习app对excel的读写控制 1.界面设计 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id

  • python中使用xlrd读excel使用xlwt写excel的实例代码

    在数据分析和运营的过程中,有非常多的时候需要提供给别人使用,提供的形式有很多种,最经常使用的是Excel, 而 数据的统计和分析采用的是 python, 使用 python 把数据存在Excel 也是常见的事情,也有很多的库帮我们做了很多引擎的事情,比如说xlrd 和xlwt, 分别为读excel和写excel. 安装xlrd和xlwt python中安装第三方模块都较为简单,同样的使用pip 命令就可以: pip install xlrd pip install xlwt 在这里准备上一份Ex

  • nodejs 生成和导出 word的实例代码

    前段时间由于项目需求,得做excel和word的导出功能,excel的导出百度一下一大把,小伙伴们都写的好详细,基本打来改改就可以用,可导出word的功能,百度了貌似都找不到可用资料,哎,费解呀.后来找同事,同事们也没整过,看来还得自己上呀... 第一次发现原来百度Google这强大,同事推荐的 http://www.baigoogledu.com/ 百度Google一起摆 nodejs word  找到https://github.com/Ziv-Barber/officegen   看到这里

  • ASP.Net MVC利用NPOI导入导出Excel的示例代码

    什么是NPOI 该项目是位于http://poi.apache.org/的POI Java项目的.NET版本.POI是一个开源项目,可以帮助您读取/写入xls,doc,ppt文件.它有着广泛的应用.本文给大家介绍ASP.Net MVC利用NPOI导入导出Excel的问题. 因近期项目遇到所以记录一下: 首先导出Excel: 首先引用NPOI包 (Action一定要用FileResult) /// <summary> /// 批量导出本校第一批派位学生 /// </summary>

  • JavaScript实现导入导出excel的示例代码

    目录 Excel导入 html代码 js代码 Excel导出 html代码 js代码 Excel导入 html代码 <button style={{ color: '#1890ff', fontSize: '14px', cursor: 'pointer' }} onClick={() => { upFile(); }} > 导入 </button> <input id="upFile" type="file" style={{

随机推荐