|
@@ -0,0 +1,106 @@
|
|
|
+package com.gyee.gaia.meter.service.saveHistory;
|
|
|
+
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
+import cn.hutool.core.date.DateUnit;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import com.gyee.gaia.meter.entity.MeterInfoBottomcode;
|
|
|
+import lombok.Data;
|
|
|
+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 java.io.File;
|
|
|
+import java.io.FileInputStream;
|
|
|
+import java.io.PrintStream;
|
|
|
+import java.io.UnsupportedEncodingException;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.ZoneId;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+public class ReadFromXLSXTest {
|
|
|
+
|
|
|
+ public static void main(String[] args) throws UnsupportedEncodingException {
|
|
|
+ System.setOut(new PrintStream(System.out, true, "UTF-8"));
|
|
|
+ System.out.println("hello");
|
|
|
+ String fileName = "C:\\Users\\24410\\Desktop\\data.xlsx";
|
|
|
+ List<MeterInfoBottomcode> records = readDataFromFile(fileName);
|
|
|
+ // TODO: 将records保存到数据库中
|
|
|
+ // 打印每天的数据记录
|
|
|
+ for (MeterInfoBottomcode record : records) {
|
|
|
+ System.out.println("name: " + record.getName());
|
|
|
+ System.out.println("startTime: " + record.getStartTime());
|
|
|
+ System.out.println("起码: " + record.getStartValue());
|
|
|
+ System.out.println("endTime: " + record.getEndTime());
|
|
|
+ System.out.println("止码: " + record.getEndValue());
|
|
|
+ System.out.println("dayValue: " + record.getDayValue());
|
|
|
+ System.out.println("编码: " + record.getCode());
|
|
|
+ System.out.println("场站: " + record.getWindpowerstationId());
|
|
|
+ System.out.println();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public static List<MeterInfoBottomcode> readDataFromFile(String fileName) {
|
|
|
+
|
|
|
+ List<MeterInfoBottomcode> records = new ArrayList<>();
|
|
|
+
|
|
|
+ try (FileInputStream fileInputStream = new FileInputStream(new File(fileName));
|
|
|
+ ) {
|
|
|
+ Workbook workbook = new XSSFWorkbook(fileInputStream);
|
|
|
+ Sheet sheet = workbook.getSheetAt(0);
|
|
|
+ int lastRowNum = sheet.getLastRowNum();
|
|
|
+
|
|
|
+ int day = 0;
|
|
|
+
|
|
|
+ for (int i = 1; i <= lastRowNum; i += 2) {
|
|
|
+ day++;
|
|
|
+
|
|
|
+ MeterInfoBottomcode record = new MeterInfoBottomcode();
|
|
|
+
|
|
|
+ Row dateRow = sheet.getRow(i);
|
|
|
+
|
|
|
+ String StringDate = dateRow.getCell(0).getStringCellValue();
|
|
|
+ DateTime dateTime = DateUtil.parse(StringDate);
|
|
|
+
|
|
|
+ record.setStartTime(dateTime.toLocalDateTime());
|
|
|
+ record.setEndTime(DateUtil.endOfDay(dateTime).toLocalDateTime());
|
|
|
+
|
|
|
+ Row infoRow = sheet.getRow(0);
|
|
|
+
|
|
|
+ record.setName(infoRow.getCell(0).getStringCellValue());
|
|
|
+ record.setCode(infoRow.getCell(1).getStringCellValue());
|
|
|
+ record.setWindpowerstationId(infoRow.getCell(3).getStringCellValue());
|
|
|
+
|
|
|
+ Row stopCodeRow = sheet.getRow(i);
|
|
|
+ double stopCode = stopCodeRow.getCell(2).getNumericCellValue();
|
|
|
+ record.setEndValue(BigDecimal.valueOf(stopCode).setScale(4, RoundingMode.HALF_EVEN));
|
|
|
+
|
|
|
+
|
|
|
+ Row electricityRow = sheet.getRow(i + 1);
|
|
|
+ double electricity = electricityRow.getCell(2).getNumericCellValue();
|
|
|
+ record.setDayValue(BigDecimal.valueOf(electricity).setScale(4, RoundingMode.HALF_EVEN));
|
|
|
+
|
|
|
+
|
|
|
+ Row startCodeRow = sheet.getRow(i-1);
|
|
|
+ double startCode = startCodeRow.getCell(2).getNumericCellValue();
|
|
|
+ record.setStartValue(BigDecimal.valueOf(startCode).setScale(4, RoundingMode.HALF_EVEN));
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ records.add(record);
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return records;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|