JAVA Excel API學習案例,javaexcelapi案例

來源:互聯網
上載者:User

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();

}

}
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.