java使用jxl導出Excel

java使用jxl導出Excel

Maven依賴:

案例1:

輸出結果:

備註:


java使用jxl導出Excel

jxl.jar是通過java操作excel表格的工具類庫,是由java語言開發而成的,只能生成.xls格式

Maven依賴:

<!-- https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl -->
<dependency>
    <groupId>net.sourceforge.jexcelapi</groupId>
    <artifactId>jxl</artifactId>
    <version>2.6.12</version>
</dependency>

案例1:

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Colour;
import jxl.format.VerticalAlignment;
import jxl.write.*;
import java.io.File;
import java.util.Arrays;
import java.util.List;


//創建列名
String[] title={"id","num1","num2","string1"};
//創建文件
File file=new File("d:/"+System.currentTimeMillis()+".xls");
try {
    file.createNewFile();
    //創建工作簿
    WritableWorkbook workbook= Workbook.createWorkbook(file);
    //創建sheet
    WritableSheet sheet=workbook.createSheet("這裏是sheet1", 0);
    //設置列寬
    List<Integer> columnView = Arrays.asList(22,19,19,19);
    //第一行設置列名
    for(int i=0;i<title.length;i++){
        Label label=new Label(i,0,title[i]);
        WritableFont font = new WritableFont(WritableFont.createFont("微軟雅黑"), 11 , WritableFont.BOLD);
        WritableCellFormat wcf=new WritableCellFormat(font);
        wcf.setBackground(Colour.SKY_BLUE);// 設置單元格的背景顏色
	    wcf.setAlignment(Alignment.CENTRE); // 設置對齊方式
	    label.setCellFormat(wcf);
	    sheet.setColumnView(i, columnView.get(i)); // 設置列的寬度
	    sheet.addCell(label);
    }
    //追加數據
    List<String> a = Arrays.asList("1","2","3");
    List<String> b = Arrays.asList("1","2","3","4","5","6","7","8","9","10","11","12");
    List<String> s = Arrays.asList("1","2","3","4");
    //以id爲一條數據,c是獲取id的下標
    int c=0;
    WritableCellFormat wcf=new WritableCellFormat();
    // 設置對齊方式
    wcf.setAlignment(Alignment.CENTRE);
    wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
    //i是下一個id數據開始的行數
    for (int i=0;i<b.size();){
	    //A列
	    Label label=null;
	    label=new Label(0,i+1,a.get(c));
	    label.setCellFormat(wcf);
	    sheet.mergeCells(0,i+1,0,i+s.size());
	    sheet.addCell(label);
	    //C列
	    label=new Label(2,i+1,(i+1)+",3");
	    label.setCellFormat(wcf);
	    sheet.mergeCells(2,i+1,2,i+s.size());
	    sheet.addCell(label);
	    //D列
	    label=new Label(3,i+1,(i+1)+",432edsasasd,ferf8y93892398dne,dewewijdewihd8923982,e32u89duew9dewiodewiodnewiomdwdmewoidjwe89u8923enjnfijrefnurefher78yf78f38r3findifwncuiewhfeu8fhe8");
	    label.setCellFormat(wcf);
	    sheet.mergeCells(3,i+1,3,i+s.size());
	    sheet.addCell(label);
	    //B列
	    for (int j = 0; j < s.size(); j++) {
		    label=new Label(1,i+1+j,s.get(j));
		    label.setCellFormat(wcf);
		    sheet.addCell(label);
	    }
	    c++;
	    i=i+s.size();
    }
    //寫入數據
    workbook.write();
    workbook.close();
} catch (Exception e) {
    e.printStackTrace();
}

輸出結果:

id num1 起始位置 string1
1 1 (1,3) 1-哈哈
2
3
4
2 1 (5,3) 5-哈哈
2
3
4
3 1 (9,3) 9-哈哈
2
3
4

備註:

      真實輸出的表格沒有一行一個顏色的效果,這是CSDN編輯器自帶的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章