Excel InterOp:如何在不允许使用“:”时使用绝对路径的WorkBook.SaveAs?

时间:2012-07-26 02:16:48

标签: c# excel interop

我正在尝试使用以下代码从内存中保存工作簿:

 this.Target.WorkBook.SaveAs(this.Target.WorkBookPath, Interop.XlFileFormat.xlWorkbookNormal,
                        Type.Missing, Type.Missing, 
                         Type.Missing, Type.Missing, 
                          Interop.XlSaveAsAccessMode.xlNoChange,
                         Type.Missing,Type.Missing,Type.Missing,Type.Missing);

将this.Target.WorkBookPath从配置文件中读取为:

  

d:\ Devzone \ rpt_SalesMargins2

但我收到此错误消息:

  

无法访问该文件。请尝试以下操作之一:\ n \ n•制作   确保指定的文件夹存在。 \ n•确保该文件夹   包含文件不是只读的。\ n•确保文件名   不包含以下任何字符:< > ? []:|要么   * \ n•确保文件/路径名称不超过218个字符。

所以,如果我不能使用“:”那么如何指定D:\?

更新/ SANITY检查

config

SANITY

在这张图片中,该文件名为rego,我尝试了几个随机名称,所有名称都作为相对路径工作,但在绝对时失败。

1 个答案:

答案 0 :(得分:0)

我认为问题不在于:作为驱动器分隔符。来自Microsoft支持:

  

例如,文件的路径可能会重复以下内容:      'c:\ excel \ personal ... [my workbook.xls] up_to_31_char_sheetname'!$ A $ 1

     

注意如果路径中有方括号,也会出现此行为。 (强调我的)

http://support.microsoft.com/kb/213983

他们使用包含驱动器号的错误路径示例,并说坏事是路径中的 [

您尝试使用的完整路径是什么?