用java程序將數據寫入到Excel中

/*
*你需要導入一個架包,這只是個測試筆記。
*/
package excelwritedemo;

/**
 * Created by river on 15-4-11.
 */
import java.io.*;
import java.net.URL;
import java.util.*;
import jxl.*; //Excel 的架包文件
import jxl.format.*;
import jxl.format.Alignment;
import jxl.format.Colour;
import jxl.write.*;//架包中的寫入

public class ExcelWriteDemo {
    public static void main(String[] args){
       try{
           File file = new File("myexcel.xls");//第一步 創建一個可以寫入的Excel文件
           WritableWorkbook workbook = Workbook.createWorkbook(file);//Workbook 是一個靜態方法,直接可以通過類名調用
           //上一步是創建一個可以寫入的.xls文件
           WritableSheet sheet = workbook.createSheet("ID Card", 0);//用工作簿創建一個工作表(可以創建多個工作表)
           //可以設置一些工作表的屬性
           /**
            *  行高,列寬, 字體
            */
           sheet.setColumnView(0, 20);//設置列寬
           sheet.setColumnView(1, 20);
           sheet.setColumnView(2, 20);
           sheet.setColumnView(5, 50);
           sheet.setRowView(0, 400);//設置行高
           sheet.setRowView(1, 300);
           sheet.setRowView(2, 300);
           /*
            * 設置格式(如黑體,宋體...), 字體大小,加粗, 傾斜, 下劃線, 顏色
            */
           WritableFont wf = new WritableFont(WritableFont.ARIAL, //設置字體
                   14,//字體大小
                   WritableFont.NO_BOLD, //加粗
                   false,//字體傾斜
                   UnderlineStyle.NO_UNDERLINE, //下劃線
                   Colour.BLUE);//顏色
           WritableCellFormat wcf = new WritableCellFormat(wf);//將字體的設置加入到單元格的屬性中
           wcf.setBackground(Colour.YELLOW);//設置單元格背景
           wcf.setAlignment(Alignment.CENTRE);//設置單元格的對齊方式
           //第二步是創建一個或一些可以寫入的工作表
           //接下來是設置表頭,及設置單元格
           //Label的構造函數是 Label(int column, int row, String str);
           Label label0 = new Label(0, 0, "ID Card", wcf);
           Label label1 = new Label(1, 0, "Time", wcf);
           Label label2 = new Label(2, 0, "User", wcf);
           Label label3 = new Label(3, 0, "存款餘額", wcf);
           Label label4 = new Label(4, 0, "銀行利率", wcf);
           Label label5 = new Label(5, 0, "Thangk you for your coming!", wcf);
           //將上面的內容加載到Sheet(工作表中)
           sheet.addCell(label0); //普通字符串不需要設置格式
           sheet.addCell(label1);
           sheet.addCell(label2);
           sheet.addCell(label3);
           sheet.addCell(label4);
           sheet.addCell(label5);
           //格式化日期
           DateFormat df = new DateFormat("yyyy-MM-dd hh:mm:ss");
           WritableCellFormat wcfDF = new WritableCellFormat(df);

           //格式化數字
           NumberFormat nf = new NumberFormat("#.###");
           WritableCellFormat wcfN = new WritableCellFormat(nf);
           //使用上述日期和數字格式,添加第二行數據
           Label cardID1 = new Label(0,1, "5646");
           Label cardID2 = new Label(0,2, "8983");
           sheet.addCell(cardID1); //將數據添加到工作表中
           sheet.addCell(cardID2);//將數據添加到工作表中
           DateTime  dateTime1 = new DateTime(1, 1, new GregorianCalendar(2009, 11, 31).getTime(), wcfDF);
           DateTime  dateTime2 = new DateTime(1, 2, new GregorianCalendar(2014, 12, 23).getTime(), wcfDF);
           sheet.addCell(dateTime1);
           sheet.addCell(dateTime2);
           Label  user1 = new Label(2, 1, "World");
           Label  user2 = new Label(2, 2, "Hello");
           sheet.addCell(user1);
           sheet.addCell(user2);
           jxl.write.Number balance1 = new jxl.write.Number(3, 1, 1000, wcfN);
           jxl.write.Number balance2 = new jxl.write.Number(3, 2, 2000, wcfN);
           sheet.addCell(balance1);
           sheet.addCell(balance2);
           jxl.write.Number lilv = new jxl.write.Number(4, 1, 9.45, wcfN);
           sheet.addCell(lilv);
           /*
            *合併單元格
            */
           sheet.addCell(new Label(0, 3, "合併單元格", wcf));
           sheet.addCell(new Label(0, 4, "測試1"));
           sheet.addCell(new Label(1, 4, "測試2"));
           sheet.addCell(new Label(2, 4, "測試3"));
           sheet.mergeCells(0, 3, 2, 3);
           /*
            *增加鏈接
            */
           sheet.addCell(new Label(0, 5, "excel連接測試",wcf));
           sheet.mergeCells(0, 6, 3, 6);
           WritableHyperlink link = new WritableHyperlink(0, 6, new URL("http://www.baidu.com"));
           link.setDescription("鏈接使用, 連接到百度");
           sheet.addHyperlink(link);
           //以上是對錶的設置,接下要將以上數據寫入到工作表中,
           workbook.write(); //真正的寫入數據在xls中
           workbook.close();//關閉對象,釋放資源
           System.out.println("數據寫入完畢");

       }catch(Exception ex){
           ex.printStackTrace();//輸出異常
           System.out.println(ex);
       }
    }

}


發佈了15 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章