从.xls文件获取"工作簿的绝对路径"

WW.*_*WW. 14 excel vba excel-vba apache-poi

当我在特定.xls文件上使用Excel"文档检查器"来检查"隐藏的属性或个人信息"时,它说:

找到以下文档信息:
*工作簿的绝对路径

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

我知道文件当前保存在哪里,但我想要提取的是工作簿的绝对路径,该路径保存在我拥有的文件中.这样我就可以知道作者在哪里保存了它.

这是文件发生的事情:

  1. 有人创作它,将它保存在一些我不知道的绝对文件路径中
  2. 他们将其上传到网站
  3. 我从网站上下载了它

Excel表示文档包含步骤1的绝对路径.我在这条路径之后,而不是我在步骤3保存它的地方,因为我知道.

kiw*_*ngs 10

我可以通过简单地创建一个空的Excel文件,添加一个公式,将其保存为BIFF8(.xls)来重现该警告消息.然后,文档检查员将警告绝对路径....但在我的情况下,文件中没有文件名.

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

如果要使用POI开发人员工具,可以使用以下命令:

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

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

列出通常嫌疑人旁边的任何嵌入对象SummaryInformation,DocumentSummaryInformation并且Workbook:
java -cp poi-3.16-beta1.jar org.apache.poi.poifs.dev.POIFSLister file.xls

因此,在运行工具并记录输出后,您可以通过Excel Document Inspector删除属性并再次执行这些工具.输出可以分歧,你可能会找到罪魁祸首.


Yow*_*E3K 9

假设它是一个.xlsx文件而不是旧式.xls文件,你可以

  1. 将工作簿重命名为.zip文件
  2. xl\workbook.xml的范围内"文件" .zip文件

并且您将找到上次从Excel保存的绝对路径.

这就是为什么与其他人分享与工作相关的电子表格不是一个好主意,除非您首先清除此类信息.


我不知道如何在二进制格式文件中找到它.