JAVA Excel API學習案例,javaexcelapi案例
先貼代碼吧,運行一下,看看效果,然後看看注釋,再看看代碼後面的基礎介紹
建立一個新excel並寫入資料:
public static void myExcel2() throws IOException, WriteException {WritableWorkbook wwb = Workbook.createWorkbook(new File("F:"+ File.separator + "myExcel1.xls"));// 建立excel表格中的一個sheet項WritableSheet sheet = wwb.createSheet("第一頁", 0);// excel中的cell元素可以有很多種資料類型,比如Number,Label等等// 在API中,為我們提供了很多的cell類型// 儲存格格式編輯// 合併儲存格式sheet.mergeCells(0, 0, 5, 0);/* ===========儲存格中文字的格式案例============ */// cell元素中字型(字型格式,顏色,大小的控制)WritableCellFormat forFont = new WritableCellFormat();// 儲存格樣式對象WritableFont font = new WritableFont(WritableFont.ARIAL);// 選擇字型font.setColour(Colour.RED);// 顏色font.setPointSize(20); // 大小font.setUnderlineStyle(UnderlineStyle.DOUBLE);// 底線forFont.setFont(font); // 將字型樣式對象添加進入儲存格樣式對象forFont.setAlignment(Alignment.CENTRE);// 文字置中// 建立一個儲存格,並指定位置,內容和格式Label topLabel = new Label(0, 0, "合併儲存格,設定字型格式", forFont);// 將建立的儲存格對象添加進入sheet頁中sheet.addCell(topLabel);sheet.setRowView(0, 1000);/* ===========儲存格中數位格式化案例============ */// 建立數字格式化對象NumberFormat numFormat = new NumberFormat("#.000");// 建立儲存格格式化對象並添加數字格式化對象WritableCellFormat forNumber = new WritableCellFormat(numFormat);Number myNumber = new Number(0, 1, 3.14159, forNumber);sheet.addCell(myNumber);/* ===========儲存格中日期的格式化案例============ */DateFormat dateFormat = new DateFormat("yyyy-MM-dd");WritableCellFormat forDate = new WritableCellFormat(dateFormat);forDate.setBackground(Colour.BLUE); // 設定儲存格顏色DateTime myDate = new DateTime(1, 1, new Date(), forDate);sheet.addCell(myDate);// 寫入檔案wwb.write();// 關閉wwb.close();}利用java建立一個全新的Excel文檔,通過學習API,我總結的一個流程如下:
1.需要建立一個可以進行寫入操作的Workbook對象,即:WritableWorkbook,同時傳入參數可以是一個檔案輸出資料流,也可以是一個通過File建立的一個對象(參數是檔案名稱),如:
WritableWorkbook wwb = newWritableWorkbook(new File("myExcel.xls"));
2.建立可編輯的WritableSheet對象,在Excel文檔中可以有多個sheet頁,第一個sheet指定為0,如:
WritableSheet sheet = wwb.createSheet("sheet1",0);
3.首先,建立一個對應類型的格式化對象,比如
NunberFormat dateformat = new NunberFormat("yyyy-MM-dd")對象
4.然後建立一個Excel單元格格式化對象,並且將上述對應類型格式化對象以參數的方式傳遞,比如
WritableCellFormat datecellformat = new WritableCellFormat(dateformat);
5.建立單元格對象,設定位置,值,以及指定單元格格式化對象
DateTime mydate = new DateTime(0,0,new Date(),datecellformat);
單元格格式化對象的參數說明:這裡以四個參數的建構函式為例進行說明:
第一個參數是列號,第二個參數是行號,第三個參數是值,第四個參數是可選擇的,表示格式,原因是第四個參數可以通過setCellFormat()方法指定格式
6.將建立的單元格對象,添加到sheet中
7.進行寫入操作:wwb.write();
8.關閉操作:wwb.close()
特別說明,如果有輸出資料流,不用的時候請關閉輸出資料流
意外發現,java中也有Number,所以,我們在這裡請務必匯入jsl.write.Number,否則下列語句將報錯:
Number myNumber = new Number(0, 1, 3.14159, forNumber);
日期格式參數說明:
yyyy 四位年份 MM 兩位月份 dd 兩位天 hh 兩位小時數字 mm兩位分鐘數字(大寫表示月份)ss 兩位秒數
常見格式:
yyyy-MM-dd hh:mm:ss(中間特殊符號可隨意設定,一般可以有“-”,“/”," ")
數字格式化時參數說明:
java中對數位格式化主要用#和0作為站位符,詳細解釋如下:
保留整數部分和3位小數:#.000
取2位整數和2位小數:00.00
當整數部分不足時,會補0,缺多少補多少個0
百分制%:即在上述格式後添加一個%符號
#.##%(小數點後的“#”作用等同於“0”)
科學計數法:用E字母,如:00.000E0
數字分割:每三位中間添加一個“,”號
import java.text.DecimalFormat; public class TestNumberFormat { public static void main(String[] args) { double pi = 3.1415927; // 圓周率 // 取一位整數 System.out.println(new DecimalFormat("0").format(pi)); // 3 // 取一位整數和兩位小數 System.out.println(new DecimalFormat("0.00").format(pi)); // 3.14 // 取兩位整數和三位小數,整數不足部分以 0 填補。 System.out.println(new DecimalFormat("00.000").format(pi)); // 03.142 // 取所有整數部分 System.out.println(new DecimalFormat("#").format(pi)); // 3 // 以百分比方式計數,並取兩位小數 System.out.println(new DecimalFormat("#.##%").format(pi)); // 314.16% long c = 299792458; // 光速 // 顯示為科學計數法,並取五位小數 System.out.println(new DecimalFormat("#.#####E0").format(c)); // 2.99792E8 // 顯示為兩位整數的科學計數法,並取四位小數 System.out.println(new DecimalFormat("00.####E0").format(c)); // 29.9792E7 // 每三位以逗號進行分隔。 System.out.println(new DecimalFormat(",###").format(c)); // 299,792,458 // 將格式嵌入文本 System.out.println(new DecimalFormat("光速大小為每秒 ,### 米。").format(c)); }}
未完待續,還有對已存在的檔案進行讀取和修改操作,以及常見的format參數說明
java excel的api
你這樣式,應該是你的模板裡的吧。。
你看看,你在這個模板裡,寫字,會不會變淡。。
通過java,只是把資料寫到這個儲存格裡。並沒有改變這個儲存格的樣式。
跪Java Excel API文檔
poi.apache.org/apidocs/index.html
POI的
往儲存格D3寫入123
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class ExcelUtil {
public static void main(String[] args) throws IOException {
String file = "c:\\test.xls";
HSSFWorkbook workbook = new HSSFWorkbook();
workbook.createSheet("my worksheet").createRow(2).createCell(3).setCellValue("123");
OutputStream output = new FileOutputStream(file);
workbook.write(output);
output.flush();
output.close();
}
}