/*
*你需要導入一個架包,這只是個測試筆記。
*/
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);
}
}
}
用java程序將數據寫入到Excel中
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.