首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用mpxj从mpp文件读取任务企业自定义字段值

基础概念

mpxj 是一个 Java 库,用于读取和写入 Microsoft Project 文件(.mpp)。Microsoft Project 是一款项目管理软件,广泛用于计划和管理项目。.mpp 文件是 Microsoft Project 的原生文件格式,包含了项目的详细信息,包括任务、资源、时间表等。

相关优势

  1. 跨平台支持mpxj 是一个纯 Java 库,可以在任何支持 Java 的平台上运行。
  2. 丰富的功能mpxj 支持读取和写入 .mpp 文件中的各种数据,包括任务、资源、时间表、自定义字段等。
  3. 易于使用:提供了简洁的 API,使得开发者可以轻松地集成到自己的项目中。

类型

mpxj 主要分为两个版本:

  1. mpxj:用于读取和写入 .mpp 文件。
  2. mpxj-excel:用于将 .mpp 文件导出为 Excel 格式。

应用场景

  1. 项目管理工具:集成 mpxj 可以帮助项目管理工具读取和写入 Microsoft Project 文件,实现数据的导入导出。
  2. 自动化脚本:编写自动化脚本时,可以使用 mpxj 读取 .mpp 文件中的数据,进行进一步的处理和分析。
  3. 数据迁移:在需要将 Microsoft Project 数据迁移到其他系统时,mpxj 可以提供强大的支持。

读取任务企业自定义字段值

假设我们有一个 .mpp 文件,其中包含了一些任务和企业自定义字段。我们需要使用 mpxj 读取这些自定义字段的值。

示例代码

代码语言:txt
复制
import net.sf.mpxj.*;
import net.sf.mpxj.reader.MPPReader;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

public class MpxjExample {
    public static void main(String[] args) {
        try {
            // 打开 .mpp 文件
            File file = new File("path/to/your/file.mpp");
            InputStream is = new FileInputStream(file);

            // 使用 MPPReader 读取文件
            MPPReader reader = new MPPReader();
            ProjectFile project = reader.read(is);

            // 获取所有任务
            for (Task task : project.getTasks()) {
                // 获取企业自定义字段
                CustomField customField = project.getCustomFields().getByUniqueID(1); // 假设自定义字段的唯一 ID 是 1
                Object fieldValue = task.getCustomFieldValue(customField);

                System.out.println("Task ID: " + task.getID() + ", Custom Field Value: " + fieldValue);
            }

            // 关闭输入流
            is.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

参考链接

常见问题及解决方法

  1. 找不到类或方法
    • 确保你已经正确导入了 mpxj 库。可以通过 Maven 或 Gradle 添加依赖。
    • 检查 mpxj 版本是否兼容你的项目。
  • 读取文件失败
    • 确保 .mpp 文件路径正确,并且文件存在。
    • 检查文件权限,确保程序有权限读取该文件。
  • 自定义字段读取失败
    • 确保自定义字段的唯一 ID 正确。
    • 检查 .mpp 文件中是否包含该自定义字段。

通过以上步骤,你应该能够成功使用 mpxj 读取 .mpp 文件中的任务企业自定义字段值。如果遇到其他问题,请参考 mpxj 的官方文档或社区支持。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SwiftUI:使用 @EnvironmentObject 环境中读取自定义

SwiftUI的环境使我们可以使用来自外部的,这对于读取Core Data上下文或视图的展示模式等很有用。...但是我们也可以将自定义对象发送到环境中,并在以后将它们读出来,这使我们可以在复杂的应用程序中更轻松地共享数据。...如果我们使用@ObservedObject,则需要将我们的对象每个视图传递到下一个视图,直到它最终到达可以使用该视图的视图E,这很烦人,因为B,C和D不在乎它。...使用@EnvironmentObject,视图A可以将对象放入环境中,视图E可以环境中读取对象,而视图B,C和D不必知道发生了什么。...好吧,您已经了解到字典如何让我们使用一种类型作为键key,而另一种类型作为。环境有效地使我们可以将数据类型本身用作键,并将类型的实例用作

9.7K20

Doris + Flink + DolphinScheduler + Dinky 构建开源数据平台

企业应用中,Flink 常用于高效连接消息流,如 Kafka,各种数据库、文件系统等,可以实时加工处理、也支持批处理,最终将数据高效写入消息流、数据库、软件系统等。...高扩展性:支持自定义任务类型,调度器使用分布式调度,调度能力随集群线性增长,Master 和 Worker 支持动态上下线。...如 AGG BY TOP2(score) as (score,rank) 则为对 score 字段进行分组聚合操作,取每组内最大与次大,然后返回多行结果。...进行自定义函数的注册。 FlinkSQL 全局变量 全局变量在企业数据开发中是非常关键和灵活的。...FlinkSQL 血缘分析 Dinky 提供了字段血缘分析的能力,可以 Flink SQL 作业中的多个 insert 语句中分析出该任务字段血缘分析。

12K76
  • 大数据Doris(一):深入了解Apache Doris

    Apache Doris 如今在中国乃至全球范围内都拥有着广泛的用户群体,截止目前, Apache Doris 已经在全球超过 1000 家企业的生产环境中得到应用,在中国市值或估排行前 50 的互联网公司中...BE会通过索引和谓词下推快速过滤数据,可以在后台执行Compact任务,减少查询时的读放大。...Z-order Index :使用 Z-order 索引,可以高效对数据模型中的任意字段组合进行范围查询。Min/Max :有效过滤数值类型的等值和范围查询。...Invert Index :能够对任意字段实现快速检索。...由上图可知,内存读取数据速度比磁盘读取数据速度要快1000倍,CPU缓存中读取数据的速度比内存中读取数据的速度最快要快100倍,CPU寄存器中读取数据的速度为300ps(1000ps 皮秒 =

    3K72

    DDIA:数仓和大数据的双向奔赴

    这些高层的 API 不仅让用户可以更高效的使用体验,还能够提升任务在物理层面的执行效率。...通过在高层 API 中注入声明式的特性、在运行时使用优化器动态地优化,批处理框架长得越来越像 MPP 数据库(也获得了类似性能)。...容错 MapReduce 通过频繁的(每次 MapReduce 后)刷盘,从而可以避免重启整个任务,而只重新运行相关子任务就可以其故障中快速恢复过来。...批处理任务的基本特点是——读取输入,进行处理,产生输出的过程中,不会修改原数据。换句话说,输出是输入的衍生数据。...唯其有界,处理任务才能知道什么时候输入读取结束了、什么时候计算完成了。

    15600

    Snova架构篇(一):Greenplum MPP核心架构

    分布键列数据应该含有唯一或者非常高的势。 如果单个列无法实现均匀分布,则使用多列分布键,但不要超过两列。额外的列通常不会得到更均匀的分布,而且它们要求额外的哈希处理时间。...读取任意列的成本不一样,越靠后的列,成本越高。 不适合向量计算、JIT架构。(简单来说,就是不适合批处理形式的计算) 需要REWRITE表时,需要对全表进行REWRITE,例如加字段有默认。...读取任意列的成本是一样的。 非常适合向量计算、JIT架构。对大批量数据的访问和统计,效率更高。 读取很多列时,由于需要访问更多的文件,成本更高。例如查询明细。...需要REWRITE表时,不需要对全表操作,例如加字段有默认,只是添加字段对应的那个文件。...gpload使用定义在一个YAML格式的控制文件中的规范来执行一次装载。

    3.3K10

    关于OLAP数仓,这大概是史上最全面的总结!(万字干货)

    两者均具备较高的数据实时性,在互联网企业均有广泛使用。 除了上面介绍的Druid和ClickHouse外,ElasticSearch和Solar也可以归为宽表模型。...在有数据分区场景下,谓语下推更有效; 字段过滤下推,即ProjectionPushDown,比如某个SQL仅需返回表记录中某个列的,那么在列存模式下,只需读取对应列的数据,在行存模式下,可以选择某个索引进行索引覆盖查询...两种Join顺序没有好坏之分,关键看进行Join的表数据即Join的字段特点。 对于LDT,如果每次Join均能够过滤掉大量数据,那么资源消耗来看,显然是更优的。...比如判断数据的类型(是string还是int),或判断某一列是否因为其他字段的过滤条件导致本行不需要被读取等场景; CPU与IO性能不匹配:每次磁盘读取一个行数据,经过多次调用交给CPU进行处理,显然...对于Impala等OLAP系统,可以通过HDFS本地访问模式进行优化,直接读取磁盘上的HDFS文件数据。

    6.1K54

    大数据OLAP系统(2)——开源组件篇

    它会Deep Storage下载查询需要的Segments以加速查询。它不负责写入。 MiddleManager进程:负责处理获取到新数据,外部数据源读取数据并转换成Segments进行存储。...它支持对本地文件、HDFS、HBASE等数据进行数据查询,也支持对如JSON等schema-free的数据进行查询。 ? 架构上看,与同是源自Dremel的Impala比较类似。...支持自定义的嵌套数据集,数据灵活,,支持查询复杂的半结构化数据。 与Hive一体化(Hive表和视图的查询,支持所有的Hive文件格式和HiveUDFS)。 支持多数据源,包括NoSQL数据库。...可扩展:自定义存储格式,自定义函数。 多接口:Beeline,JDBC,ODBC,Python,Thrift。 缺点: 延迟较高:默认MR为执行引擎,MR延迟较高。...比如构建企业级ODS/EDW,或者数据集市等,GREENPLUM都是不错的选择。

    2.3K40

    架构特点到功能缺陷,重新认识分析型分布式数据库 (转载非原创)

    在大规模集群(几百至上千)的使用上,MPP批处理和联机访问两个方面都显现了一些不足。以下内容主要借鉴了Pivotal(GPDB原厂)的一篇官方博客[3]。...传统MPP的联机查询主要面向企业管理层的少数用户,对并发能力的要求较低。而在大数据时代,数据的使用战略管理层转向战术执行层乃至一线人员,孤立的分析场景转向与业务交易场景的融合。...Hadoop生态体系 MPP在相当长的一段时期内等同于一体机方案(以TD为代表),其价格高昂到普通企业无法承受,多数在银行、电信等行业的头部企业使用。...MPPRDBMS而来(例如Vertica和GPDB都是基于PostgreSQL开发),对数据的组织形式更贴近传统方式,按区、段、块等单位组织,对数据进行了预处理工作以提升使用时的效率;Hadoop生态体系以...Mesa充分利用了现有的Google技术组件,使用BigTable来存储所有持久化的元数据,使用了Colossus (Google的分布式文件系统)来存储数据文件使用MapReduce来处理连续的数据

    56610

    TiDB 5.1 发版,打造更流畅的企业级数据库体验

    得益于大量用户真实应用场景的快速反馈,TiDB 5.1 提速发版,进一步打造更流畅的企业级数据库体验。...来加速; 提供便利的强制 MPP 模式开关,用户可自主决定是否开启 MPP 模式; 通过优化集群负荷的分散与平衡机制,消除热点,提升系统“综合”承载能力; 修复引擎内存使用问题,提供更加平稳流畅的使用体验...TiDB 5.1 加强了对磁盘读写链路的管理,限制后台任务对磁盘资源的使用,大幅降低上述场景对线上业务的干扰,改善读写链路的效率和稳定性。...原先 TiDB 不支持变更列类型的操作,如果上游 MySQL 修改表的字段类型会导致与 TiDB 数据同步的中断。...借助 Stale Read,用户可以指定一个过去的时间点任意一个数据副本读取数据(不必从 leader 读取),从而显著分散节点的压力负载,使得整体读吞吐能力提升近一倍。

    79310

    Batch、MPP、Cube 和 Hadoop

    简单来说,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果(与Hadoop相似)。...MPP数据库适合存储高密度价值数据,并且是长期存储和多次使用,所以MPP并行数据库会花大量经历在Load阶段,把数据处理成适合分析格式。...Cube cube是一个非常重要的概念,是多维立方体的简称,主要是用于支持联机分析应用(OLAP),为企业决策提供支持。...Cube就像一个坐标系,每一个Dimension代表一个坐标系,要想得到一个一个点,就必须在每一个坐标轴上取得一个,而这个点就是Cube中的Cell。...相较于SQL on Hadoop,MPP更适合做interactive ad-hoc analysis,前者则更适用于对于海量数据做批处理或者需要使用UDF(自定义函数)的场景。

    2.5K30

    数据仓库模型全景

    主键设计等维度,主要针对性能,可扩展性进行物理模型设计审查 二、什么是数仓的数据模型 数据仓库模型构建的宗旨能够直观地表达业务逻辑,能够使用实体、属性及其关系对企业运营和逻辑规则进行统一的定义、编码和命名...常用数据模型的是关系模型和维度模型,关系模型企业的高度设计一个3NF模型的方法,用实体加关系描述的数据模型描述企业业务架构,在范式理论上符合3NF,其站在企业角度进行面向主题的抽象,而不是针对某个具体业务流程的...事实表一般不包含非数字类型字段,虽然数据量大,但占用的空间并不大,保证更高的查询效率。...ODS层:全称是Operational Data Store,又叫数据准备层,数据来源层,主要用于原始数据在数据仓库的落地,这些数据逻辑关系都与原始数据保持一致,在源数据装入这一层时,要进行诸如业务字段提取或去掉不用字段...,开标之前需要响应,并缴纳投标保证金;发售招标文件和投标人购买标书后,如果投标人对招标文件提出质疑,或招标人要修改招标文件,此时要在规定时间内发布一个澄清公告。

    1.2K20

    数据湖在大数据典型场景下应用调研个人笔记

    增加维护及更新时间作为对象描述字段(图片类型、像素大小、尺寸规格)。非对象方式及数字化属性编目(全文文本、图像、声音、影视、超媒体等信息),自定义元数据。...Flink 读取完 Kafka 的数据之后进行实时处理,这时候可以把处理的中间结果写入到数据湖中,然后再进行逐步处理,最终得到业务想要的结果。...实现自定义事件时间字段功能,用户可选数据中的任意时间字段作为事件时间落入对应分区,避免数据漂移问题。...嵌套Json自定义层数解析,我们的日志数据大都为Json格式,其中难免有很多嵌套Json,此功能支持用户选择对嵌套Json的解析层数,嵌套字段也会被以单列的形式落入表中。...实现SQL化自定义配置动态分区的功能,解决埋点数据倾斜导致的实时任务性能问题,优化资源使用,此场景后面会详细介绍。

    1.2K30

    DDIA:批处理和 MPP 数据库千丝万缕

    很多 KV 存储都支持使用 MapReduce 任务构建数据库文件,比如 Voldemort,Terrapin, ElephantDB 和 HBase bulk loading。...当数据加载进 Voldemort 时,服务器可以利用老文件继续对外提供服务,新文件分布式文件系统中拷贝的 Voldemort 服务本地。...批处理输出的哲学 本章稍早我们讨论过 Unix 的设计哲学,它鼓励在做实验时使用显式的数据流:每个程序都会读取输入,然后将输出写到其他地方。...比如,大部分 Unix 工具假设输入输出是无类型的文本,因此不得不花一些时间进行输入解析(比如之前的例子中,需要按空格分割,然后取第 7 个字段,以提取 URL)。...MPP 数据库还倾向将数据尽可能地存在内存里(例如在进行 HashJoin 的 HashBuild 时),以避免读取磁盘的额外损耗。

    20210

    你需要的不是实时数仓 | 你需要的是一款强大的OLAP数据库(下)

    OLAP委员会对联机分析处理的定义为:原始数据中转化出来的、能够真正为用户所理解的、并真实反映企业多维特性的数据称为信息数据,使分析人员、管理人员或执行人员能够多种角度对信息数据进行快速、一致、交互地存取...语句转换为MapReduce任务进行运行。...维度的属性映射成多维数组的下标或者下标范围,事实以多维数组的存储在数组单元中,优势是查询快速,缺点是数据量不容易控制,可能会出现维度爆炸的问题。...Impala只能读取文本文件,而不能读取自定义二进制文件。 每当新的记录/文件被添加到HDFS中的数据目录时,该表需要被刷新。这个缺点会导致正在执行的查询sql遇到刷新会挂起,查询不动。...,学习成本低 扩展性好,支持多语言的自定义函数和自定义类型等 提供了大量的维护工具,使用维护起来很方便 支持线性扩展:采用MPP并行处理架构。

    1.7K20

    零手写操作系统之RVOS系统调用实现-09

    -03 RISC-V 学习篇之特权架构下的中断异常处理 零手写操作系统之RVOS外设中断实现-04 零手写操作系统之RVOS硬件定时器-05 零手写操作系统之RVOS抢占式多任务实现-06 零手写操作系统之...的MPP和MPIE位为1 在start_kernel函数中,通过schedule函数手动切换到初始任务执行,该过程会调用switch_to函数完成指令流的切换执行。...由于mstatus的MPP位默认为0,所以我们只需要在start.s汇编文件中,去掉对MPP位的设置即可: 当switch_to第一次被手动调用时,执行mret指令,该指令将MPP保存的特权级恢复为当前特权级别...系统调用返回放在a0中,用于表示成功还是失败,成功一般为0,如果失败了,则使用负数来表示不同的错误码。...a0的是存放于当前任务的上下文中 7. trap_handler函数返回,返回为mepc+4,返回存放于a0寄存器中 8. trap_vector函数返回, 将a0赋值给mepc,恢复当前任务的上下文

    29130

    校园管理如何做好数字化转型?最新福利方案,助力建设智慧校园

    教学管理平台整体架构图 (二)平台应用设计 基于学校教学与管理体系,依照过程方法与持续改进的质量管理原则,以国家、社会、企业、学生需求为输入,以提高社会、企业、学生的满意度为输出,在学院、专业、课程、教师...; 支持通过API接口连接数据源; 支持直接跨库、跨数据源关联数据,无需中间库; 支持通过可视化的拖拽操作进行数据建模和表的关联; 支持建立时间、区域及自定义字段层次关系; 支持自动按粒度拆分日期;...支持自定义字段;支持自循环列的数据处理方式; 支持环比、同比的数据处理方式; 支持可视化设置数据过滤器; 支持物化等。...3、查看报表: 支持用户登录后默认打开最常用的报表; 支持报表与图表之间的联动查询; 支持对图表进行缩放,同时会与相关联的组件进行联动; 支持自定义鼠标悬停内容; 支持参数传递; 支持以不同文件格式导出报表或报表中的单个组件...4、任务计划: 支持通过自定义定时任务进行数据的更新; 支持通过自定义定时任务将报表以邮件发送到指定邮箱; 支持通过自定义定时任务将数据结果导出到数据库等。

    87640

    TiKV & TiFlash 加速复杂业务查询丨TiFlash 应用实践

    或者关系数据库加列存数据库的架构是一种考验,主要有下面几个痛点:传统的关系型数据库无法通过加索引来优化加速查询,业务无法正常开展;列存数据库需要把筛选相关数据放到列数据库,并且需要做好数据实时同步;无法数据库层面做好数据的读取...,往往需要从列数据库读取数据后再到关系数据库进行数据合并后输出,性能不容乐观。...混用优化图片标签系统高级筛选通过标签(从宽表里不确定字段)和窄表特定字段组合查询客户并分页图片Read from TiKVSELECT /*+ READ_FROM_STORAGE(tikv[b], tikv...(默认) tidb_enforce_mpp=on不使用 MPP 模式。TiDB 无视代价估算,选择 MPP 模式。...图片标签下价值机构排名根据选中的属性(多值)使用这些最多的排名前 3 的机构,并统计出总额图片执行计划table:c 走 TiFlash ;table:a, table:b 走 TiKV ,同时使用了列存和行存的优势

    66720

    AnalyticDB_分布式分析型数据库

    对于记录量特别⼤的表,存储空间和insert性能考虑,⼀定要减少主键的字段数。在之前的公司,有用多个列的MD5来作为主键的。...建议只在进行低频调用、性能敏感度低、必须使用 MPP 等查询时使用 MPP 模式。 MPP 拥有较丰富的数学函数、字符串处理函数、窗口函数等支持。...MPP 支持在复杂的聚合函数中使用 GROUPING SETS、CUBE 和 ROLLUP 语法 MPP的INTERSECT 优先级高于 EXCEPT 和 UNION 支持使用TABLESAMPLE,用于现有的表中随机抽取一些样本数据...MPP 任 务,否则只查询当前连接的 FRONTNODE 节点实例运行的 MPP 任务。...如果表记录数特别大,存储空间和 INSERT 性能考虑,一定要减少主键的字段数。 ​ 最主要的还是要从业务角度确保生成的主键在该表能代表唯一

    1.8K20
    领券