1. 程式人生 > 其它 >利用poi進行表格解析生成sql指令碼

利用poi進行表格解析生成sql指令碼

技術標籤:資料庫poiexcelsql

package com.mysteel.flie;

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.ss.usermodel.WorkbookFactory;

import java.io.*;

/**
 * 解析表格刪除指標和資料
 *
 * @author XLJ
 * @date 2020/11/25
 */
public class SqlGenerateTest { public static void main(String[] args) throws Exception { // 指標&資料刪除sql // deleteSql(); // 模板新增 insertSql(); } /** * @description: 指標&資料刪除sql * @author XLJ * @date 2020/11/30 15:05 */ private static void deleteSql
() throws Exception { // 輸出的sql File deleteFile = new File("C:\\Users\\DELL\\Desktop\\delete.sql"); FileOutputStream fileOutputStream = new FileOutputStream(deleteFile); // 解析的Excel檔案 File parseFile = new File("C:\\Users\\DELL\\Desktop\\11.24反饋資料問題.xlsx"
); // Excel頁數(從0開始) int sheetNo = 1; Workbook workbook = WorkbookFactory.create(parseFile); Sheet sheet = workbook.getSheetAt(sheetNo); int lastRowNum = sheet.getLastRowNum(); // 行索引從0開始 for (int i = 1; i <= lastRowNum; i++) { Row row = sheet.getRow(i); String lzCode = row.getCell(3).getStringCellValue(); byte[] deleteDataBytes = ("DELETE FROM LZ_HGVA_MID WHERE LZ_CODE = '" + lzCode + "';\n").getBytes(); byte[] deleteIndexBytes = ("DELETE FROM LZ_HGBS_MID WHERE LZ_CODE = '" + lzCode + "';\n").getBytes(); fileOutputStream.write(deleteDataBytes); fileOutputStream.write(deleteIndexBytes); } System.out.println("成功解析" + lastRowNum + "資料"); } private static void insertSql() throws Exception { // 輸出的sql File deleteFile = new File("C:\\Users\\DELL\\Desktop\\insert.sql"); FileOutputStream fileOutputStream = new FileOutputStream(deleteFile); // 解析的Excel檔案 File parseFile = new File("C:\\Users\\DELL\\Desktop\\隆眾品種反饋\\11-25\\11-30新增.xlsx"); // Excel頁數(從0開始) int sheetNo = 0; Workbook workbook = WorkbookFactory.create(parseFile); Sheet sheet = workbook.getSheetAt(sheetNo); int lastRowNum = sheet.getLastRowNum(); // 從第二行開始讀取資料 for (int i = 1; i <= lastRowNum; i++) { Row row = sheet.getRow(i); // 獲取專案名稱 String projName = row.getCell(0).getStringCellValue(); // 獲取品種名稱 String breedName = row.getCell(1).getStringCellValue(); // 獲取模板 String model = row.getCell(2).getStringCellValue(); // INSERT INTO "LZ_HGVA_MID_TEMPLATE"("ID", "PROJ_NAME", "BREED_NAME", "MODEL", "CREATE_TIME", "UPDATE_TIME", "STATUS") VALUES (LZ_HGVA_MODEL_MID_SEQ.nextval, 'DINP產能分地區調查(分企業)', 'DINP', '13_11', (sysdate-to_date('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss'))* 24*60*60*1000, (sysdate-to_date('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss'))* 24*60*60*1000, '0'); byte[] insertBytes = ("INSERT INTO \"LZ_HGVA_MID_TEMPLATE\"(\"ID\", \"PROJ_NAME\", \"BREED_NAME\", \"MODEL\", \"CREATE_TIME\", \"UPDATE_TIME\", \"STATUS\") VALUES (LZ_HGVA_MODEL_MID_SEQ.nextval, '" + projName + "', '" + breedName + "', '" + model + "', (sysdate-to_date('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss'))* 24*60*60*1000, (sysdate-to_date('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss'))* 24*60*60*1000, '0');\n").getBytes(); fileOutputStream.write(insertBytes); } System.out.println(parseFile + "成功解析\t" + lastRowNum + "行資料"); } }