当前位置: 首页 > news >正文

做电影网站不放国内主机wordpress 重复插件

做电影网站不放国内主机,wordpress 重复插件,企业建设门户网站的目的,wordpress MU多重筛选新老数据的维护工具,例如:A文件有a、b、c列共十条数据,B文件有a、b、c、d列数据共15条数据(其中有包含A的一些数据)如何快速的将A里有的数据放入到B中(长点心吧!可别一条条比对着录入数据&#…

        新老数据的维护工具,例如:A文件有a、b、c列共十条数据,B文件有a、b、c、d列数据共15条数据(其中有包含A的一些数据)如何快速的将A里有的数据放入到B中(长点心吧!可别一条条比对着录入数据)

下面是一个完整的 Java 实现,

        使用 Apache POI 库处理 Excel 文件,对比 A、B 文件中的"测点标识"列(定位到相同的数据行),并将 A 文件中的"标签值"列填充到 B 文件对应的位置。

1. 添加 Maven 依赖
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>5.2.3</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.3</version>
</dependency>
2. 完整代码实现
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map;public class ExcelDataComparator {public static void main(String[] args) {String fileAPath = "path/to/FileA.xlsx";String fileBPath = "path/to/FileB.xlsx";String outputPath = "path/to/OutputFile.xlsx";try {// 1. 读取文件A的数据(测点标识 -> 标签值)Map<String, String> pointToTagMap = readFileA(fileAPath);// 2. 处理文件B并填充数据processFileB(fileBPath, outputPath, pointToTagMap);System.out.println("数据处理完成!输出文件: " + outputPath);} catch (Exception e) {e.printStackTrace();}}/*** 读取文件A,构建测点标识到标签值的映射*/private static Map<String, String> readFileA(String filePath) throws Exception {Map<String, String> map = new HashMap<>();FileInputStream fis = new FileInputStream(filePath);Workbook workbook = new XSSFWorkbook(fis);Sheet sheet = workbook.getSheetAt(0); // 假设使用第一个工作表// 获取表头行确定列索引Row headerRow = sheet.getRow(0);int pointIdIndex = -1;int tagValueIndex = -1;for (Cell cell : headerRow) {String headerName = cell.getStringCellValue().trim();if ("测点标识".equals(headerName)) {pointIdIndex = cell.getColumnIndex();} else if ("标签值".equals(headerName)) {tagValueIndex = cell.getColumnIndex();}}if (pointIdIndex == -1 || tagValueIndex == -1) {throw new RuntimeException("文件A中缺少必要的表头列");}// 遍历数据行for (int i = 1; i <= sheet.getLastRowNum(); i++) {Row row = sheet.getRow(i);if (row == null) continue;String pointId = getCellStringValue(row.getCell(pointIdIndex));String tagValue = getCellStringValue(row.getCell(tagValueIndex));if (pointId != null && !pointId.isEmpty()) {map.put(pointId, tagValue);}}workbook.close();fis.close();return map;}/*** 处理文件B并填充数据*/private static void processFileB(String inputPath, String outputPath, Map<String, String> pointToTagMap) throws Exception {FileInputStream fis = new FileInputStream(inputPath);Workbook workbook = new XSSFWorkbook(fis);Sheet sheet = workbook.getSheetAt(0);// 获取表头行确定列索引Row headerRow = sheet.getRow(0);int pointIdIndex = -1;int tagValueIndex = -1;for (Cell cell : headerRow) {String headerName = cell.getStringCellValue().trim();if ("测点标识".equals(headerName)) {pointIdIndex = cell.getColumnIndex();} else if ("标签值".equals(headerName)) {tagValueIndex = cell.getColumnIndex();}}if (pointIdIndex == -1) {throw new RuntimeException("文件B中缺少'测点标识'列");}// 如果文件B没有"标签值"列,可以创建(这里假设已有该列)if (tagValueIndex == -1) {tagValueIndex = headerRow.getLastCellNum();Cell newHeaderCell = headerRow.createCell(tagValueIndex);newHeaderCell.setCellValue("标签值");}// 遍历数据行并填充for (int i = 1; i <= sheet.getLastRowNum(); i++) {Row row = sheet.getRow(i);if (row == null) continue;String pointId = getCellStringValue(row.getCell(pointIdIndex));if (pointId == null || pointId.isEmpty()) continue;// 从文件A的映射中获取对应的标签值String tagValue = pointToTagMap.get(pointId);if (tagValue != null) {Cell targetCell = row.getCell(tagValueIndex, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK);targetCell.setCellValue(tagValue);}}// 保存修改后的文件FileOutputStream fos = new FileOutputStream(outputPath);workbook.write(fos);workbook.close();fos.close();}/*** 安全获取单元格字符串值*/private static String getCellStringValue(Cell cell) {if (cell == null) return "";switch (cell.getCellType()) {case STRING:return cell.getStringCellValue().trim();case NUMERIC:return String.valueOf((int) cell.getNumericCellValue());case BOOLEAN:return String.valueOf(cell.getBooleanCellValue());case FORMULA:return cell.getCellFormula();default:return "";}}
}

关键点说明

  1. 数据结构

    • 使用 Map<String, String> 存储文件A中的"测点标识"->"标签值"映射关系

  2. 列索引定位

    • 动态查找"测点标识"和"标签值"所在的列索引

  3. 单元格处理

    • getCellStringValue() 方法处理各种类型的单元格数据

    • 使用 Row.MissingCellPolicy.CREATE_NULL_AS_BLANK 处理可能为空的单元格

  4. 文件处理

    • 读取文件A构建映射关系

    • 读取文件B并修改数据

    • 输出到新文件(避免修改原始文件)

使用示例

假设:

  • 文件A.xlsx:

    测点标识标签值
    P001温度
    P002压力
  • 文件B.xlsx:

    测点标识其他数据标签值
    P001xxx
    P003yyy

运行程序后,输出文件将变为:

测点标识其他数据标签值
P001xxx温度
P003yyy

注意事项

  1. 文件格式支持:代码使用 .xlsx 格式(POI的XSSF)

  2. 性能优化:对于大文件,可以考虑使用 SXSSFWorkbook

  3. 错误处理:实际应用中应添加更完善的异常处理

  4. 表头检查:确保两个文件都有"测点标识"列

如果需要处理更复杂的情况(如多sheet、不同表头等),可以进一步扩展此代码。

http://www.dtcms.com/a/455907.html

相关文章:

  • 专业做装修的网站网页设计怎么让图片横向填满
  • 做公司网站的企业灰色行业推广平台网站
  • 怎么建小说网站成品软件网站推荐
  • o2o电商网站建设电商哪个岗位最吃香
  • 黄骅广信建设集团网站wordpress帖子打赏观看
  • 有的网站打不开 但别人电脑能打开国产oa系统有哪些
  • 织梦做分销网站自己建立一个网页
  • 360老是提示危险网站营销策划模板
  • 建设银行个人登录网站备案信息修改网站名称
  • 北京市保障性住建设投资中心网站首页专门做dm单的网站
  • 网站网址黄页大全免费网站解析慢 优化
  • 主体负责人电话修改 网站备案郑州建设网站哪家好
  • 网站 提交入口asp双语企业网站源码
  • 东莞建设教育网站奇迹网站架设视频
  • 桂林 网站建设专业的购物网站建设
  • 旅游网站建设风险分析全网推广
  • 企业网站策划方案模板杭州外贸网站建设公司价格
  • 世界网站排名查询海南建设局相关网站
  • 网站模版html企业信息管理系统包括
  • 南充做网站的公司个人或企业做网络贸易的主要网站
  • 北京永安市政建设投资有限公司网站aws的efs可以做网站的什么
  • 深圳网站建设 设计首选深圳市wordpress固定链接目录
  • 系统管理网站东莞常平镇
  • 谷歌云做网站服务器app界面设计案例
  • 营销网站制作哪家好做网站用php还是html
  • 山东机关建设网站老版wordpress怎么采集淘宝客
  • 改变关键词对网站的影响怎样做公司的网站首页
  • 三分钟短视频策划方案百度关键词排名优化工具
  • 建设信息网怎么进入泉州百度关键词优化
  • 优客逸家网站建设怎样做网站分析总结