通过工作簿迭代以生成具有新文件名的新工作簿

时间:2018-02-13 10:49:41

标签: python excel win32com

我想在我的目录中遍历工作簿。对于每个工作簿,我想要一个新的工作簿。

我希望新工作簿以它迭代的文件命名,但是使用' New'在它面前(理想情况下,新工作簿应该是全新的,而不是以前工作簿的重复,这是否可能?)

以下代码似乎正在做某事,但并不是很正确

xlPasteValues

我想要制作名为Newfilename2.xlsx,Newfilename3.xlsx等新书的新书

有人知道解决方案吗?

编辑:

输出就是这个。请注意,打开一个空白工作簿,但它不会自动保存。如果我做wb.SaveAs(' New.xlsx'),它会保存为New.xlsx,但这不是我所追求的,我希望它以每个文件命名为' New' ;作为前缀。

com_error:(-2147352567,'发生异常。',(0,' Microsoft Office Excel',' SaveAs方法的工作簿类失败',& #39; C:\ Program Files(x86)\ Microsoft Office \ Office12 \ 1033 \ XLMAIN11.CHM',0,-2146827284),无)

1 个答案:

答案 0 :(得分:0)

如果您可以使用 xlwt 模块。以下示例可能有所帮助。

<强>实施例

public MedicineBlock GetMedBlockById(ObjectId id)
    {
        prepareConnection();
        cache.As<MedicineBlock>();
        MedicineBlock meds = cache.Get<MedicineBlock>("MedicineBlock" + id.ToString());
        if (meds != null)
        {
            cache.Set<MedicineBlock>("MedicineBlock" + meds.id, meds, new TimeSpan(0, 2, 0, 0));
            return meds;
        }
        else
        {
            MongoCollection medsCollection = db.GetCollection<Medicine>("blok");
            meds = medsCollection.FindOneByIdAs<MedicineBlock>(id);
            cache.Set<MedicineBlock>("MedicineBlock" + meds.id, meds, new TimeSpan(0, 2, 0, 0));
            return meds;
        }
    }