我有一个使用excel互操作例程的程序,可以根据excel模板生成一堆报告。
这一切都可以接受,但我想弄清楚的副作用是如何防止用户覆盖原始模板。
由于我无法控制的原因,它必须是出类拔萃的,据我所知,模板必须位于内部网上所有用户都可以读/写的地方。 (如果是存档,那么用户运行的应用程序将无法用新数据填充它)
我正在考虑通过重命名文件并将其移动到网络上的其他位置来解决这个问题,但我不确定这是否可行。 (因此线程的名称)
此外,可能有更好的方法来解决我刚才没有想到的问题。
答案 0 :(得分:1)
我还没试过,但我认为如果你把它放在一个只读的共享中,你仍然可以打开它并将内容写入打开的文档,只是它无法将其保存回来该位置,您必须使用SaveAs
将其保存在其他位置。
否则,如果我错了,那就按照你自己的说法做,你把它放在一个只读的共享中,然后在你开始进行互操作之前将它复制到其他地方。只需使用File.Copy复制它,也许使用返回的名称Path.GetTempFileName以确保不覆盖任何其他内容,然后最后使用SaveAs
将其保存到任何地方用户想要。