vba - 从 .xls 文件获取 "absolute path to the workbook"

标签 vba excel apache-poi

当我在特定 .xls 文件上使用 Excel“文档检查器”来检查“隐藏属性或个人信息”时,它会显示:

The following document information was found:
* Absolute path to the workbook

如何从文件中获取工作簿的绝对路径?如果需要以编程方式完成,我可以使用 Java(例如 Apache POI)或 VBA。

我知道文件当前保存在哪里,但我想要提取的是保存在我的文件中的工作簿的绝对路径。这样我就可以知道作者将其保存在哪里。

以下是文件发生的情况:

  1. 有人创作了它,并将其保存在我未知的某个绝对文件路径
  2. 他们将其上传到网站
  3. 我从网站下载的

Excel 指示文档包含步骤 1 中的绝对路径。我正在寻找此路径,而不是我在步骤 3 中保存它的位置,因为我知道这一点。

最佳答案

我只需创建一个空的 Excel 文件、添加一个公式并将其另存为 BIFF8 (.xls) 即可重现该警告消息。然后,文档检查器将警告绝对路径。 ...但就我而言,文件内没有文件名。

验证这一点的一个简单方法是在十六进制编辑器中打开文件并搜索众所周知的保存位置(即存储虚拟/测试文件的位置) - 这可以存储为 ASCII 或作为 16 位字符串,即每个奇数字节都是一个字符。

如果您想使用 POI 开发者工具,可以使用以下内容:

列出所有 Excel 记录:
java -cp poi-3.16-beta1.jar org.apache.poi.hssf.dev.BiffViewer 文件.xls

列出文档和摘要属性:
java -cp poi-3.16-beta1.jar org.apache.poi.hpsf.extractor.HPSFPropertiesExtractor 文件.xls

要列出常见嫌疑对象 SummaryInformationDocumentSummaryInformationWorkbook 旁边的所有嵌入对象:
java -cp poi-3.16-beta1.jar org.apache.poi.poifs.dev.POIFSLister 文件.xls

因此,在运行工具并记录输出后,您可以通过 Excel 文档检查器删除属性并再次执行工具。可以对输出进行比较,您可能会找到罪魁祸首。

关于vba - 从 .xls 文件获取 "absolute path to the workbook",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41132541/

相关文章:

java - 使用 apache POI 在现有 Excel 文件之间插入新列

ms-access - 禁用警告 : You copied a large amount of data onto the clipboard

vba - 在我的当前选择中获取标题编号

excel - 同一工作表中的不同细胞保护

database - 在 MS Access 中存储数据并在 Excel 中查询

excel - ' '!K13 是什么意思? (空单元格引用)

vba - Excel 中的 VBA 平均值

excel - 自动填充使用一半的核心

java - 如何在 Java 上的 JTable 中填充 Excel 的某些行?

java - 如何在java中更改现有Excel(xlsx或xls)单元格的颜色