jxl本地excel的導入導出

1、從指定位磁盤的excel文件中導入數據並保存數據庫:java

package com.inspur;c++

 

import java.io.File;數據庫

import java.util.ArrayList;測試

import java.util.HashMap;字體

import java.util.List;spa

import java.util.Map;.net

import jxl.Sheet;excel

import jxl.Workbook;orm

 

/**對象

 * @author WHD 2014-10-28

 */

public class TestImport {

public static void main(String[] args) throws Exception {

// 存放list集合

Map<String, Object> map = new HashMap<>();

// list集合存放一行的數據

List<Object> list = null;

// 生成一個excel表文件,從指定的文件中得到數據

Workbook workbook = Workbook.getWorkbook(new File("G:/test.xls"));

// 獲取這個表中共有多少頁,無論有沒有數據只要有頁數就會生成

Sheet sheet[] = workbook.getSheets();

System.out.println("文件頁數" + sheet.length);

// 當前頁的nm列的具體值

String lab = null;

for (int a = 0; a < sheet.length; a++) {

// sheet[a].getRows 獲取當前頁的總行數

for (int i = 0; i < sheet[a].getRows(); i++) {

list = new ArrayList<>();

// sheet[a].getColumns()獲取當前行的總列數

for (int j = 0; j < sheet[a].getColumns(); j++) {

// ij列的值

lab = sheet[a].getCell(j, i).getContents();

// 這是具體一個單元格

System.out.print(lab + "");

// 將一行一行的數據保存到list集合中

list.add(lab);

}

// 遍歷保存list也就是將這頁的數據保存到map集合中

map.put("name" + i, list);

list = null;

System.out.println();

}

}

// 上面的代碼是從指定磁盤的excel中讀取數據

// 保存到數據庫

List listc = null;

for (int c = 0; c < sheet[0].getRows(); c++) {

listc = (List) map.get("name" + c);

// 循環遍歷給對象賦值。 調用方法向數據庫中保存數據

for (Object obj : listc) {

System.out.println((String) obj);

}

listc = null;

}

 

}

}

 

2、本機器上從數據庫獲取的數據導出到運行程序的機器的指定位置這裏設置了excel導出後的不少屬性,好比設置單元格的顏色,居中,自動換行等:

package com.inspur;

 

import java.io.File;

import java.io.IOException;

 

import jxl.Workbook;

import jxl.format.Alignment;

import jxl.format.Border;

import jxl.format.BorderLineStyle;

import jxl.format.Colour;

import jxl.format.UnderlineStyle;

import jxl.format.VerticalAlignment;

import jxl.write.Label;

import jxl.write.WritableCellFormat;

import jxl.write.WritableFont;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import jxl.write.WriteException;

import jxl.write.biff.RowsExceededException;

 

/**

 *@author WHD

 *2014-11-8

 */

public class TestColor {

 /**

     * @param args

     * @throws IOException 

     * @throws WriteException 

     * @throws RowsExceededException 

     */ 

    public static void main(String[] args) throws IOException, RowsExceededException, WriteException { 

        //建立Excel工做簿

        WritableWorkbook workbook = Workbook.createWorkbook(new File("G:/ExcelDemo.xls")); 

 

        //建立Excel電子薄

        WritableSheet sheet = workbook.createSheet("第一個Sheet", 0); 

        //分別給2,3,4列設置不一樣的寬度

        sheet.setColumnView(0, 40); 

        sheet.setColumnView(1, 30); 

        sheet.setColumnView(2, 50); 

        sheet.setColumnView(3, 20); 

 

        //sheet電子版中全部的列設置默認的列的寬度

        sheet.getSettings().setDefaultColumnWidth(30); 

 

        //設置字體

        WritableFont font1 = new WritableFont(WritableFont.ARIAL,14,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.RED); 

 

        WritableCellFormat cellFormat1 = new WritableCellFormat(font1); 

        //設置背景顏色

        cellFormat1.setBackground(Colour.BLUE_GREY); 

        //設置邊框

        cellFormat1.setBorder(Border.ALL, BorderLineStyle.DASH_DOT); 

        //設置自動換行

        cellFormat1.setWrap(true); 

        //設置文字居中對齊方式

        cellFormat1.setAlignment(Alignment.CENTRE); 

        //設置垂直居中

        cellFormat1.setVerticalAlignment(VerticalAlignment.CENTRE); 

        //建立單元格 

        Label label1 = new Label(0, 0, "第一行第一個單元格(測試是否自動換行!)",cellFormat1); 

        Label label2 = new Label(1, 0, "第一行第二個單元格",cellFormat1); 

        Label label3 = new Label(2, 0, "第一行第三個單元格",cellFormat1); 

        Label label4 = new Label(3, 0, "第一行第四個單元格",cellFormat1); 

        //添加到行中

        sheet.addCell(label1); 

        sheet.addCell(label2); 

        sheet.addCell(label3); 

        sheet.addCell(label4); 

         

        //給第二行設置背景、字體顏色、對齊方式等等

        WritableFont font2 = new WritableFont(WritableFont.ARIAL,14,WritableFont.NO_BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.BLUE2); 

        WritableCellFormat cellFormat2 = new WritableCellFormat(font2); 

        cellFormat2.setAlignment(Alignment.CENTRE); 

        cellFormat2.setBackground(Colour.PINK); 

        cellFormat2.setBorder(Border.ALL, BorderLineStyle.THIN); 

        cellFormat2.setWrap(true); 

 

        //建立單元格

        Label label11= new Label(0,  1, "第二行第一個單元格(測試是否自動換行!)",cellFormat2); 

        Label label22 = new Label(1, 1, "第二行第二個單元格",cellFormat2); 

        Label label33 = new Label(2, 1, "第二行第三個單元格",cellFormat2); 

        Label label44 = new Label(3, 1, "第二行第四個單元格",cellFormat2); 

 

        sheet.addCell(label11); 

        sheet.addCell(label22); 

        sheet.addCell(label33); 

        sheet.addCell(label44); 

 

        //寫入Excel表格中

        workbook.write(); 

        //關閉流

        workbook.close(); 

    } 

}

相關文章
相關標籤/搜索