main
黄海 8 months ago
commit 7ffd8fb78a

@ -155,6 +155,8 @@ public class ExcelKit {
// 遍历工作表中的所有行
if (sheet == null) return array;
System.out.println("readSheet数据数量=" + sheet.getLastRowNum());
for (Row row : sheet) {
rowIndex++;
if (rowIndex <= skipRowCount) continue;//跳过指定的行数
@ -478,8 +480,9 @@ public class ExcelKit {
//如果达到目标预期的数量就直接返回poi获取的数据列表
int totalRow = data.size() + skipRowCount;
if (totalRow < expectLimit) {
System.out.println("poi获取的数据列表" + data.size());
printTable(data);
System.out.println("怎么能小于预期目标:" + expectLimit + "呢,请人为检查!文件路径:"+docPath+"\n第"+chartNumber+"个图表。");
System.out.println("怎么能小于预期目标:" + expectLimit + "呢,请人为检查!文件路径:" + docPath + "\n第" + chartNumber + "个图表。");
System.exit(0);
}
return data;

@ -1,54 +0,0 @@
package com.dsideal.base.Tools.FillData.Test;
import cn.hutool.core.io.FileUtil;
import com.dsideal.base.Tools.FillData.ExcelKit.ExcelKit;
import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil;
import com.dsideal.base.Tools.Util.ReadDocxUtil;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class C2 {
public static void main(String[] args) throws IOException, InvalidFormatException, InterruptedException {
//初始化数据库连接
LocalMysqlConnectUtil.Init();
//实例化
ReadDocxUtil ru = new ReadDocxUtil();
//处理这个目录
//判断file是不是目录是目录的需要跳过
//城市名称
File file = new File("D:\\dsWork\\YunNanDsBase\\Doc\\全省及州市县区人口与教育报告集20241023\\16个州市报告2022\\分析报告20240510\\昭通市人口变化及其对教育的影响20240416.docx");
String cityName = ru.getCityOrAreaName(file.getName());
String fileName = file.getName();
//判断是否为docx文件
if (fileName.endsWith(".docx") && !fileName.startsWith("~")) {
System.out.println("正在处理" + cityName + "市州文件...");
//读取文件
//1号模板数据在图表6和29中
int secondChartNumber = 29;
List<List<String>> source2 = ExcelKit.getChartData(file.getAbsolutePath(), secondChartNumber - 1, 1, 10);
for (int i = 0; i < source2.size(); i++) {
System.out.println(source2.get(i).size());
for (int j = 0; j < source2.get(i).size(); j++) {
System.out.print(source2.get(i).get(j) + "\t");
}
System.out.println();
}
}
}
}

@ -0,0 +1,45 @@
package com.dsideal.base.Tools.FillData.Test;
import com.dsideal.base.Tools.FillData.ExcelKit.ExcelKit;
import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil;
import com.dsideal.base.Tools.Util.ReadDocxUtil;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.util.ZipSecureFile;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xwpf.usermodel.XWPFChart;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class TestC2 {
public static void main(String[] args) throws IOException, InvalidFormatException, InterruptedException {
//处理这个目录
//判断file是不是目录是目录的需要跳过
//城市名称
File file = new File("D:\\dsWork\\YunNanDsBase\\Doc\\全省及州市县区人口与教育报告集20241023\\16个州市报告2022\\分析报告20240510\\昭通市人口变化及其对教育的影响20240416.docx");
String fileName = file.getAbsolutePath();
InputStream is = new FileInputStream(fileName);
ZipSecureFile.setMinInflateRatio(-1.0d);
XWPFDocument doc = new XWPFDocument(is);
//排序后的图表
List<XWPFChart> charts = ExcelKit.getSortListForXWPFChart(doc.getCharts());
System.out.println("图表个数=" + charts.size());
//第34个图表读取不出来
XSSFWorkbook workbook = charts.get(33).getWorkbook();
System.out.println("正在读取第34个图表数据...");
List<List<String>> data = ExcelKit.readSheet(workbook, 2);
System.out.println("数据条数=" + data.size());
is.close();
ExcelKit.printTable(data);
}
}
Loading…
Cancel
Save