0

我目前有一个 34x22 .xlsx 电子表格。我正在通过 pydrive 下载它,填写一些空白值,然后通过 pydrive 将文件上传回来。当我将文件上传回来时,所有带有公式的单元格都是空白的(任何以 = 开头的单元格)。我有我要上传的文件的本地副本,它看起来不错,所以我很确定问题一定出在 pydrive 上。

我的代码:

def upload_r1masterfile(filename='temp.xlsx'):
        """
        Upload a given file to drive as our master file
        :param filename: name of local file to upload
        :return:
        """
        # Get the file we want
        master_file = find_r1masterfile()
        try:
            master_file.SetContentFile(filename)
            master_file.Upload()
            print 'Master file updated. ' + str(datetime.datetime.now())
        except Exception, e:
            print "Warning: Something wrong with file R1 Master File."
            print str(e)
            return e

我唯一的提示是,如果我将param={'convert': True}标签添加到Upload,那么就没有损失。但是,这意味着我现在正在使用谷歌表格格式,我宁愿不这样做。不仅因为它不是在这里使用的执行格式,还因为如果我尝试master_file.GetContentFile(filename)我得到错误:No downloadLink/exportLinks for mimetype found in metadata

有什么提示吗?上传时是否还有其他我不知道的属性?

谢谢!

4

1 回答 1

1

Robin能够在github 存储库中帮助我回答这个问题。两种建议的解决方案都有效:

1)上传文件时,是否先关闭了Excel?IIRC MS Office 将大量内容写入临时文件,这可以解释为什么缺少某些部分。如果您先尝试非转换上传,则在两次尝试之间完整文件可能已保存到磁盘,因此第二次转换上传尝试有效。

2) GetContentFile 采用称为 mimetype 的第二个参数,它应该允许您下载文件。你能试试 .GetContentFile(filename, mimetype="application/vnd.ms-excel") 吗?如果该 mimetype 没有按预期工作,这里有一篇很棒的StackOverflow 帖子,其中列出了您可以尝试的一堆不同类型。

再次感谢罗宾!

于 2016-06-15T23:44:44.430 回答