Excelデータ POI運営データ

Javaコード

数値を抽出する簡単なExcel操作

このコードは直接実行できます。ファイル アドレスは、row.getCell() を通じて独自のローカル ファイル アドレスに変更する必要があります。このメソッドは行と列の値を取得します。私の個人的な理解は、主にデータを走査することです。ループしてコンソールに出力します。

package com.guo;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.junit.Test;
import org.n3r.core.collection.RMap;
import org.springframework.util.StringUtils;

import java.io.FileInputStream;
import java.util.HashMap;
import java.util.Map;

public class FileReader {
    
    

    String PATH = "D:\\Desktop\\";

    @Test
    public void test() throws Exception {
    
    
            //获取文件流
            FileInputStream fis = new FileInputStream(PATH+"20230601_B301_callsMonthApi_Y200_0001.xlsx");
            //获取一个工作簿
            Workbook workbook = new XSSFWorkbook(fis);

            //获取一个工作表
            Sheet sheet = workbook.getSheetAt(0);
            //获取第一行内容
            Row row = sheet.getRow(0);
            if (row != null){
    
    
                int Cells = row.getPhysicalNumberOfCells();
                    Cell cell = row.getCell(1);
                    Cell cell1 = row.getCell(4);
                if (cell != null && cell1 != null){
    
    
                    String title = cell.getStringCellValue();
                    String title1 = cell1.getStringCellValue();
                    System.out.println(title+" | "+title1);
                    int rowCount = sheet.getPhysicalNumberOfRows();
                    Map map = new HashMap();
                    for (int rowNum = 1;rowNum < rowCount;rowNum++){
    
    
                        Row rowData = sheet.getRow(rowNum);
                        if (rowData != null){
    
    
                            Cell cellData = rowData.getCell(1);
                            Cell cellData1 = rowData.getCell(4);
                            if (cellData != null && cellData1 != null){
    
    
                                String cellKey = cellData.getStringCellValue();
                                String cellValue = cellData1.getStringCellValue();
                                if (!StringUtils.isEmpty(RMap.getStr(map,cellKey))){
    
    
                                    String str = RMap.getStr(map, cellKey);
                                    int i = Integer.parseInt(str);
                                    int i1 = Integer.parseInt(cellValue);
                                    int result = i+i1;
                                    map.put(cellKey,result);
                                }else {
    
    
                                    map.put(cellKey,cellValue);
                                }
                            }
                        }
                    }
                    System.out.print(map);
                }
            }
            fis.close();
        }
    }

上記の操作は、Excel上でデータを読み込み、さまざまな足し算や引き算を行う操作です。
コンソールに出力されたら、Excel に更新します。ここにメソッドがあるはずです。これは、Stream の入出力ストリームを使用して実装される可能性が高いですが、その時点では理解できなかったので、別のメソッドがあります。愚かな方法。
まず、コンソールから出力されたデータを html ファイルに変換します。html ファイルは 1 行ずつ Excel の形式に準拠していますが、txt はそうではありません。txt 内の記号を置き換えて Excel に変換できます。操作は、txt ファイルを Excel ファイルに変換することです。
このようにして、番号リフティング操作を実現することができる。

おすすめ

転載: blog.csdn.net/lj20020302/article/details/133140345