iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
自我挑戰組

gRPC通訊框架認識與實作系列 第 26

gRPC通訊框架認識與實作【Day 26】

  • 分享至 

  • xImage
  •  

中秋連假要準備結束了,明天要回歸社畜生活了...
我們這回要來做一個可以讀取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的框架實作內容吧!


上一篇
gRPC通訊框架認識與實作【Day 25】
下一篇
gRPC通訊框架認識與實作【Day 27】
系列文
gRPC通訊框架認識與實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言