欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

通過jxl.jar 讀取、導(dǎo)出excel的實(shí)例代碼

 更新時(shí)間:2013年03月04日 10:45:05   作者:  
通過jxl.jar 讀取、導(dǎo)出excel的實(shí)例代碼,需要的朋友可以參考一下

復(fù)制代碼 代碼如下:

 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;

/**導(dǎo)出excel文件
 *
 * @author 路人甲
 *
 */
public class ExportExcel {

 
 public List<PersonVo> personVoList;

 public ExportExcel()
 {
  initdata();
 }

 /**
  * 初始化數(shù)據(jù)
  */
 public void initdata()
 {
  // 隨機(jī)函數(shù)
  Random random = new Random();
  personVoList = new ArrayList<PersonVo>();
  // 初始化100個(gè)人進(jìn)集合
  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歲以內(nèi)的隨機(jī)年齡
   personVo.setAge("" + random.nextInt(100));
   personVoList.add(personVo);
  }
 }

 /**導(dǎo)出數(shù)據(jù)以Excel格式導(dǎo)出
  * exportName 導(dǎo)出文件名稱
  * @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);

   // 創(chuàng)建一個(gè)工作文件
   WritableWorkbook writableWorkbook = Workbook.createWorkbook(excelFile);
   // 創(chuàng)建一個(gè)工作簿
   WritableSheet sheet1 = writableWorkbook.createSheet("個(gè)人信息列表", 0);
   //創(chuàng)建行數(shù) 設(shè)置行的寬度
   sheet1.setColumnView(0, 10);
   sheet1.setColumnView(1, 10);
   sheet1.setColumnView(2, 10);
   sheet1.setColumnView(3, 10);
   // 設(shè)置行的值
   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();
//   如果是在網(wǎng)絡(luò)下載的,那么就寫這些
//            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("完成導(dǎo)出操作");
  }

 }

 /**導(dǎo)入數(shù)據(jù)以Excel格式導(dǎo)出
  *
  * @param importExcel 導(dǎo)入Excel文件名稱
  */
 public void importPerson(String importExcel)
 {
  try{
   File excelFile = new File(importExcel+".xls");
   // 創(chuàng)建一個(gè)工作文件
   Workbook workbook = Workbook.getWorkbook(excelFile);
   // 獲得第一個(gè)工作簿 這里有兩種方法獲取sheet表,1為名字,而為下標(biāo),從0開始
   Sheet sheet = workbook.getSheet(0);
   // 總記錄數(shù)
   int allRow = sheet.getRows();
   int allColspan = sheet.getColumns();
   System.out.println(allRow);
   System.out.println(allColspan);
   // 取數(shù)據(jù)
   for (int i=0; i<allRow; i++)
   {
    // 取出每一列的值
    for (int j=0; j<allColspan; j++)
    {
//     sheet.getCell(列數(shù), 行數(shù));
     Cell cell = sheet.getCell(j, i);
     // 打印出該列的值
     System.out.print(cell.getContents() + "\t");
    }
    System.out.println();
   }
   //關(guān)閉
   workbook.close();
  }catch (Exception e) {
   e.printStackTrace();
  }
  finally
  {
   System.out.println("完成導(dǎo)入操作");
  }
 }


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

  ExportExcel exportExcel = new ExportExcel();
  // 設(shè)置路徑
  String srcPath = "C:/Quarantine/PersonVo";
//  導(dǎo)出
//  exportExcel.exportPerson(srcPath);
  // 讀取
  exportExcel.importPerson(srcPath);
 }

}
 

相關(guān)文章

  • java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)雙向鏈表功能

    java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)雙向鏈表功能

    這篇文章主要為大家詳細(xì)介紹了java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)雙向鏈表功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Spring注解Autowired的底層實(shí)現(xiàn)原理詳解

    Spring注解Autowired的底層實(shí)現(xiàn)原理詳解

    從當(dāng)前springboot的火熱程度來看,java?config的應(yīng)用是越來越廣泛了,在使用java?config的過程當(dāng)中,我們不可避免的會(huì)有各種各樣的注解打交道,其中,我們使用最多的注解應(yīng)該就是@Autowired注解了。本文就來聊聊Autowired的底層實(shí)現(xiàn)原理
    2022-10-10
  • Java解析xml文件遇到特殊符號(hào)異常的情況(處理方案)

    Java解析xml文件遇到特殊符號(hào)異常的情況(處理方案)

    這篇文章主要介紹了Java解析xml文件遇到特殊符號(hào)&會(huì)出現(xiàn)異常的解決方案,實(shí)現(xiàn)思路很簡(jiǎn)單通過在讀取xml文件使用SAX解析前讀取reader,具體實(shí)現(xiàn)方法及示例代碼跟隨小編一起看看吧
    2021-05-05
  • Java項(xiàng)目實(shí)現(xiàn)五子棋小游戲

    Java項(xiàng)目實(shí)現(xiàn)五子棋小游戲

    這篇文章主要為大家詳細(xì)介紹了Java項(xiàng)目實(shí)現(xiàn)五子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • 如何把Java程序窗口在屏幕中間顯示

    如何把Java程序窗口在屏幕中間顯示

    大家在日常Java開發(fā)中,可能會(huì)需要把程序窗口定位在屏幕中間,那該如何操作呢,下面來一起看看。
    2016-08-08
  • IDEA創(chuàng)建Servlet程序的兩種實(shí)現(xiàn)方法

    IDEA創(chuàng)建Servlet程序的兩種實(shí)現(xiàn)方法

    Servlet是JavaWeb應(yīng)用程序中不可或缺的組件之一,本文主要介紹了IDEA創(chuàng)建Servlet程序的兩種實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • 淺談javaSE 面向?qū)ο?Object類toString)

    淺談javaSE 面向?qū)ο?Object類toString)

    下面小編就為大家?guī)硪黄獪\談javaSE 面向?qū)ο?Object類toString)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • MapStruct表達(dá)式應(yīng)用及避坑詳解

    MapStruct表達(dá)式應(yīng)用及避坑詳解

    一不小心踩了MapStruct表達(dá)式的坑,發(fā)現(xiàn)了一個(gè)在官方文檔上都找不到的功能,有必要記錄下。MapStruct是一個(gè)代碼生成器,它基于約定優(yōu)于配置的方法大大簡(jiǎn)化了Java?Bean類型之間的映射的實(shí)現(xiàn)
    2022-02-02
  • swagger配置正式環(huán)境中不可訪問的問題

    swagger配置正式環(huán)境中不可訪問的問題

    這篇文章主要介紹了swagger配置正式環(huán)境中不可訪問的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java e.printStackTrace()案例講解

    Java e.printStackTrace()案例講解

    這篇文章主要介紹了Java e.printStackTrace()案例講解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評(píng)論