jxl匯入 匯出excel

2022-09-10 14:09:24 字數 3681 閱讀 3631

1、jxl匯入/匯出excel案例,黏貼即可執行package junit.test;

import j**a.io.file;

import j**a.io.ioexception;

import j**a.util.arraylist;

import j**a.util.list;

import jxl.cell;

import jxl.sheet;

import jxl.workbook;

import jxl.write.label;

import jxl.write.number;

import jxl.write.writableimage;

import jxl.write.writablesheet;

import jxl.write.writableworkbook;

import jxl.write.writeexception;

import org.apache.commons.lang3.math.numberutils;

import org.junit.test;

/** * excel匯入匯出

* * @author 林計欽

* @version 1.0 feb 7, 2014 4:14:51 pm

*/public class exceltest

public class student

public student(string name, int age)

public string getname()

public void setname(string name)

public int getage()

public void setage(int age) }}

2、jxl常用操作

a、資料格式化

在excel中不涉及複雜的資料型別,能夠比較好的處理字串、數字和日期已經能夠滿足一般的應用。

字串格式化

字串的格式化涉及到的是字型、粗細、字型大小等元素,這些功能主要由writablefont和writablecellformat類來負責。假設我們在生成乙個含有字串的單元格時,使用如下語句,為方便敘述,我們為每一行命令加了編號:

① writablefont font1= new writablefont(writablefont.times, 16, writablefont.bold); 或//設定字型格式為excel支援的格式 writablefont font3=new writablefont(writablefont.createfont("楷體 _gb2312"), 12, writablefont.no_bold);

② writablecellformat format1=new writablecellformat(font1);

③ label label=new label(0, 0, "data 4 test", format1);

其中,①指定了字串格式:字型為times,字型大小16,加粗顯示。

writablefont有非常豐富的構造子函式,供不同情況下使用,jexcelapi的j**a-doc中有詳細列表,這裡不再列出。

②處**使用了writablecellformat類,這個類非常重要,通過它可以指定單元格的各種屬性,後面的單元格格式化中會有更多描述。

③處使用了label類的構造子,指定了字串被賦予那種格式。在writablecellformat類中,還有乙個很重要的方法是指定資料的對齊方式,比如針對我們上面的例項,可以指定:

//把水平對齊方式指定為居中

format1.setalignment(jxl.format.alignment.centre);

//把垂直對齊方式指定為居中

format1.setverticalalignment(jxl.format.verticalalignment.centre);

//設定自動換行

format1.setwrap(true);

b、單元格操作

excel中很重要的一部分是對單元格的操作,比如行高、列寬、單元格合併等,所幸jexcelapi提供了這些支援。這些操作相對比較簡單,下面只介紹一下相關的api。

1、合併單元格

//作用是從(m,n)到(p,q)的單元格全部合併

writablesheet.mergecells(int m, int n, int p, int q);

比如:

writablesheet sheet=book.createsheet("第一頁", 0); 

//合併第一列第一行到第六列第一行的所有單元格

//合併既可以是橫向的,也可以是縱向的。合併後的單元格不能再次進行合併,否則會觸發異常。

sheet.mergecells(0, 0, 5, 0);

c、行高和列寬

//作用是指定第i+1行的高度

writablesheet.setrowview(int i, int height);

比如:將第一行的高度設為200

sheet.setrowview(0, 200);
//作用是指定第i+1列的寬度,

writablesheet.setcolumnview(int i,int width);

比如:將第一列的寬度設為30

sheet.setcolumnview(0, 30);
d、操作(只支援png)

/**

* 寫入excel,只支援png

*/@test

public void writeimg() catch (exception e) finally catch (exception e) }}

}

很簡單和插入單元格的方式一樣,不過就是引數多了些,writableimage這個類繼承了 draw,上面只是他構造方法的一種,最後乙個引數不用說了,前面四個引數的型別都是double,依次是 x, y, width, height,注意,這裡的寬和高可不是的寬和高,而是所要佔的單元格的個數,因為繼承的draw所以他的型別必須是double,具體裡面怎麼實現的我還沒細看:)因為著急趕活,先完成功能,其他的以後有時間慢慢研究。以後會繼續寫出在使用中的心得給大家。

3、注意事項

a、jxl匯出excel亂碼

在匯出excel時,發現中文的標題亂碼,試了n種編碼方式,開始總是試圖轉為utf-8、gb2312、gbk,沒想到轉為iso-8859-1中文亂碼的問題解決了

filename = new string(filename.getbytes(),"iso-8859-1");

response.setcharacterencoding("gb2312");

response.reset();

response.setheader("pragma", "no-cache");

response.addheader("content-disposition", "attachment;filename=\""

+ filename + ".xls\"");// 點選匯出excle按鈕時候頁面顯示的預設名稱

workbook = workbook.createworkbook(response.getoutputstream());

jxl匯入匯出Excel

excel的匯入匯出在專案中經常用到,比較常用的解析架包是jxl和poi。這裡首先介紹jxl是如何實現的。匯入excel 通過本地檔案得到乙個輸入流,然後根據excel的結構來解析資料。匯出excel 宣告乙個輸出流物件,根據引數來得到乙個workbook,用來寫入資料的。然後根據excel表的結構...

java使用jxl進行Excel匯入匯出

匯入excel 匯出execl author ym 描述 匯出excel檔案 param list 實體類的集合 param path 匯出excel檔案的路徑名 param name 匯出excel檔案的檔名 param columnname 要匯出的列名 開頭第乙個字母大寫 public sta...

jxl 匯入 excel 檔案

前提要做的 匯入jxl包 1.首先要把上傳的文個件上傳到伺服器上.並得到檔案的絕對路徑 2.new乙個新的檔案物件出來,並得到輸入流 file file new file 檔案路徑 通過這個檔案物件得到檔案輸入流 fileinputstream fis new fileinputstream fil...