中秋連假要準備結束了,明天要回歸社畜生活了...
我們這回要來做一個可以讀取excel的程式然後傳遞資料出去。所以我們先來了解POI模組吧~
由Apache所開發的POI模組可以用來讀取Microsoft Office(Excel、WORD、PowerPoint、Visio等)格式檔案讀和寫的功能。我們這次實作會以讀取excel的部分為主。
首先,先引入Maven的文件,
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
再來我們就要設計讀取檔案的程式,所以我們另開一個新檔案,用來讀取excel資料夾
try {
FileInputStream excelFile = new FileInputStream("excel_file.xlsx");
Workbook workbook = new XSSFWorkbook(excelFile);
Sheet sheet = workbook.getSheetAt(0); // 假設要讀取第一個工作表
for (Row row : sheet) {
for (Cell cell : row) {
if (cell.getCellType() == CellType.NUMERIC) {
// 如果儲存格內容是數字,將其轉換為字串
String cellValue = String.valueOf((int) cell.getNumericCellValue());
System.out.println(cellValue);
} else if (cell.getCellType() == CellType.STRING) {
// 如果儲存格內容是字串,直接取得字串值
String cellValue = cell.getStringCellValue();
System.out.println(cellValue);
}
// 可以處理其他儲存格類型,如日期等
}
}
workbook.close();
excelFile.close();
} catch (IOException e) {
e.printStackTrace();
}
這樣就可以順利讀取我們的excel檔案了
再來,我們回到.proto檔,重新設計我們要傳入的欄位跟值,例如我就設計
message Request {
string id = 1;
string count = 2;
string name = 3;
string address = 4;
string sentTime = 5;
}
而我們可能會有多筆資料傳入,因此我們選用Client多發對上Server單發的結構,可以搭配之前的文章複習一下。
service TransferService{
rpc Transfer(stream TransferRequest) returns (TransferResponse){}
}
設定好之後,我們就讓protobuf執行,讓他幫我們把gRPC會用到的程式生成好,明天我們就來用gRPC的框架實作內容吧!