从Excel文件中读取caching的外部字段,结果与我在Excel中看到的结果不同

我想在python3中使用xlrd来读取excel文件,但是我没有从读取单元格的结果,因为我在Excel中看到它们。

看来我试图访问的单元格有一些外部源集,从中刷新它们,但由于该源对我来说不可用,所以excel显示一些caching的值。 这些值驻留在同一个excel文件的其他位置,所以在表格中,例如“2.65111”,单元格的实际内容在excel的这个编辑栏中显示为“= BC12”。

当我尝试通过xlrd读取这个像:

wb=xlrd.open_workbook("filename.xls",formatting_info=True) wb.sheet_by_name("sheetname").cell(12,9) 

单元格内容显示为:

 'text:'[XXXX]' (XF:95)' 

(其中XXXX最有可能是此外部.csv文件的一列的名称)

我希望xlrd能返回我在excel中看到的“2.65111”,或者至less“= BC12”作为其他单元格的引用,但是我不能以任何方式使用“[XXXXX]”的东西。

有没有办法让xlrd显示这两个中的任何一个?

我对这个“[XXXXX]”从哪里来的问题感到困惑,为什么这和我在excel中看到的差别太大了。

PS:我不能仅仅使用来自BC12单元的数据,因为这应该是文件的自动处理,只有“原始”单元具有固定的位置,而其他的可以在第二天在另一个随机位置。

一个解决scheme可能是制作只包含值,不包含公式或外部来源的Excel工作表副本。

您可以通过突出显示和复制所有内容,然后将“特殊粘贴”添加到新工作表中,然后select“仅限值”或类似的内容。

Excel中的“12,9单元”被称为J13(不是J12)。 你确定你比较喜欢吗? 预计J13会包含对BC12的引用吗? 你能通过检查J13和BC12周围的细胞来推断任何事情吗?

这可能是您唯一的select是通过Excel COM API使用实际的Excel预处理文件。 你可以在.NET中做一些简单的事情,加载excel文件,获取数据并将其保存在一个相似的结构化excel文件中,但没有外部引用。 使用Excel加载excel文件需要很长时间(几秒钟),如果你在服务器上加载它,肯定会失败,但是如果你每天有几个文件,它将会工作。 当然,如果你不在Windows上运行,它将无法正常工作。