Apache POI 面試題



尊敬的讀者,這些Apache POI 面試題是專門設計的,旨在讓您熟悉在Apache POI相關面試中可能遇到的問題型別。根據我的經驗,優秀的考官很少會在面試前計劃好要問哪些具體問題,通常問題會從該主題的一些基本概念開始,然後根據進一步的討論和您的回答繼續下去。

Apache POI 是一個流行的 API,允許程式設計師使用 Java 程式建立、修改和顯示 MS Office 檔案。它是一個由 Apache 軟體基金會開發和釋出的開源庫,用於使用 Java 程式設計或修改 Microsoft Office 檔案。它包含用於將使用者輸入資料或檔案解碼為 MS Office 文件的類和方法。

Apache POI 的元件

Apache POI 包含用於處理所有 MS Office 的 OLE2 複合文件的類和方法。此 API 的元件列表如下所示。

  • POIFS (Poor Obfuscation Implementation File System) − 此元件是所有其他 POI 元素的基礎因素。它用於顯式讀取不同的檔案。

  • HSSF (Horrible Spreadsheet Format) − 它用於讀取和寫入 MS-Excel 檔案的 xls 格式。

  • XSSF (XML Spreadsheet Format) − 它用於 MS-Excel 的 xlsx 檔案格式。

  • HPSF (Horrible Property Set Format) − 它用於提取 MS-Office 檔案的屬性集。

  • HWPF (Horrible Word Processor Format) − 它用於讀取和寫入 MS-Word 的 doc 副檔名檔案。

  • XWPF (XML Word Processor Format) − 它用於讀取和寫入 MS-Word 的 docx 副檔名檔案。

  • HSLF (Horrible Slide Layout Format) − 它用於讀取、建立和編輯 PowerPoint 簡報。

  • HDGF (Horrible DiaGram Format) − 它包含用於 MS-Visio 二進位制檔案的類和方法。

  • HPBF (Horrible PuBlisher Format) − 它用於讀取和寫入 MS-Publisher 檔案。

它是 org.apache.poi.hssf.usermodel 包下的一個高階類。它實現了 Workbook 介面,用於 .xls 格式的 Excel 檔案。

這是一個用於表示高階和低階 Excel 檔案格式的類。它屬於 org.apache.xssf.usermodel 包並實現了 Workbook 介面。

這是 org.apache.poi.hssf.usermodel 包下的一個類。它可以建立 Excel 電子表格,並允許格式化表格樣式和表格資料。

這是一個表示 Excel 電子表格高階表示的類。它位於 org.apache.poi.hssf.usermodel 包下。

這是 org.apache.poi.xssf.usermodel 包下的一個類。它實現了 Row 介面,因此它可以在電子表格中建立行。

這是 org.apache.poi.xssf.usermodel 包下的一個類。它實現了 Cell 介面。它是電子表格行中單元格的高階表示。

這是 org.apache.poi.xssf.usermodel 包下的一個類。它將提供有關電子表格單元格中內容格式的可能資訊。它還提供修改該格式的選項。它實現了 CellStyle 介面。

這是 org.apache.poi.hssf.util 包下的一個類。它提供不同的顏色作為巢狀類。通常這些巢狀類使用它們自己的索引來表示。它實現了 Color 介面。

這是 org.apache.poi.xssf.usermodel 包下的一個類。它實現了 Font 介面,因此它可以處理工作簿中的不同字型。

這是 org.apache.poi.xssf.usermodel 包下的一個類。它實現了 Hyperlink 介面。它用於將超連結設定為電子表格的單元格內容。

這是 org.apache.poi.xssf.usermodel 包下的一個類。它實現了 CreationHelper 介面。它用作公式計算和設定超連結的支援類。

這是 org.apache.poi.xsssf.usermodel 包下的一個類。它實現了 PrintSetup 介面。它用於設定列印頁面大小、區域、選項和設定。

以下程式碼片段用於建立電子表格。

//Create Blank workbook
XSSFWorkbook workbook = new XSSFWorkbook(); 

//Create a blank spreadsheet
XSSFSheet spreadsheet = workbook.createSheet("Sheet Name");

以下程式碼片段用於建立行。

XSSFRow row = spreadsheet.createRow((short)1);

以下程式碼片段用於建立單元格。

//create new workbook
XSSFWorkbook workbook = new XSSFWorkbook();

//create spreadsheet with a name
XSSFSheet spreadsheet = workbook.createSheet("new sheet");

//create first row on a created spreadsheet
XSSFRow row = spreadsheet.createRow(0);

//create first cell on created row
XSSFCell cell = row.createCell(0);

單元格型別

單元格型別指定單元格是否可以包含字串、數值或公式。字串單元格不能儲存數值,數值單元格不能儲存字串。以下是單元格型別、其值和型別語法。

單元格值型別 型別語法
空單元格值 XSSFCell.CELL_TYPE_BLANK
布林單元格值 XSSFCell.CELL_TYPE_BOOLEAN
錯誤單元格值 XSSFCell.CELL_TYPE_ERROR
數值單元格值 XSSFCell.CELL_TYPE_NUMERIC
字串單元格值 XSSFCell.CELL_TYPE_STRING

XSSFCellStyle 類用於設定單元格樣式。以下程式碼片段可用於將單元格對齊方式設定為“左上”。

XSSFCellStyle style1 = workbook.createCellStyle();
spreadsheet.setColumnWidth(0, 8000);
style1.setAlignment(XSSFCellStyle.ALIGN_LEFT);
style1.setVerticalAlignment(XSSFCellStyle.VERTICAL_TOP);
cell.setCellValue("Top Left");
cell.setCellStyle(style1);

XSSFFont 類用於向單元格新增字型。以下程式碼片段可用於將單元格的背景顏色設定為“綠色”。

//Create a new font and alter it.
XSSFFont font = workbook.createFont();
font.setFontHeightInPoints((short) 30);
font.setFontName("IMPACT");
font.setItalic(true);
font.setColor(HSSFColor.BRIGHT_GREEN.index);

//Set font into style
XSSFCellStyle style = workbook.createCellStyle();
style.setFont(font);

XSSFCellStyle 類可用於旋轉單元格。以下程式碼片段可用於將單元格文字對齊方式設定為指定的角度。

//90 degrees
XSSFCellStyle myStyle = workbook.createCellStyle();
myStyle.setRotation((short) 90);
cell = row.createCell(5);
cell.setCellValue("90D angle");
cell.setCellStyle(myStyle);

XSSFCell.CELL_TYPE_FORMULA 可用於將單元格設定為公式單元格。

// Create SUM formula
cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
cell.setCellFormula("SUM(C2:C3)" );
cell = row.createCell(3);
cell.setCellValue("SUM(C2:C3)");

XSSFCell.CELL_TYPE_FORMULA 可用於將單元格設定為公式單元格。

// Create SUM formula
cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
cell.setCellFormula("POWER(C2:C3)" );
cell = row.createCell(3);
cell.setCellValue("POWER(C2:C3)");

XSSFCell.CELL_TYPE_FORMULA 可用於將單元格設定為公式單元格。

// Create SUM formula
cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
cell.setCellFormula("MAX(C2:C3)" );
cell = row.createCell(3);
cell.setCellValue("MAX(C2:C3)");

XSSFCell.CELL_TYPE_FORMULA 可用於將單元格設定為公式單元格。

// Create SUM formula
cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
cell.setCellFormula("FACT(C2)" );
cell = row.createCell(3);
cell.setCellValue("FACT(C2)");

XSSFCell.CELL_TYPE_FORMULA 可用於將單元格設定為公式單元格。

// Create SUM formula
cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
cell.setCellFormula("SQRT(C2)" );
cell = row.createCell(3);
cell.setCellValue("SQRT(C2)");

XSSFHyperlink 可用於向單元格新增超連結。

CreationHelper createHelper = workbook.getCreationHelper();
XSSFHyperlink link = (XSSFHyperlink)createHelper.createHyperlink(Hyperlink.LINK_URL);
link.setAddress("https://tutorialspoint.tw/" );
cell.setHyperlink((XSSFHyperlink) link);

以下程式碼片段演示了使用 Apache POI 設定 Excel 的可列印區域。

XSSFWorkbook workbook = new XSSFWorkbook(); 
XSSFSheet spreadsheet = workbook
.createSheet("Print Area");

//set print area with indexes
workbook.setPrintArea(
   0, //sheet index
   0, //start column
   5, //end column
   0, //start row
   5 //end row
);

//set paper size
spreadsheet.getPrintSetup().setPaperSize(
XSSFPrintSetup.A4_PAPERSIZE);

//set display grid lines or not
spreadsheet.setDisplayGridlines(true);

//set print grid lines or not
spreadsheet.setPrintGridlines(true);

下一步是什麼?

此外,您可以回顧一下您以前使用該主題完成的任務,並確保您能夠自信地談論它們。如果您是應屆畢業生,面試官不會期望您回答非常複雜的問題,而是您必須使您的基本概念非常牢固。

其次,如果您無法回答一些問題,這實際上並不重要,重要的是,無論您回答了什麼,都必須充滿信心。所以在面試中要自信。我們在 tutorialspoint 祝您找到一位好面試官,並祝您未來的事業一切順利。乾杯 :-)

apache_poi_questions_answers.htm
廣告
© . All rights reserved.