保存时无法访问C#excel SaveAs文件

时间:2015-07-16 14:15:17

标签: c# excel csv save-as

尝试以编程方式将excel工作表另存为循环中的唯一文件名。

    private static DateTime csvtime = DateTime.Now;
    private static string time = csvtime.ToString("HH:mm:ss");
    private static string Path = @"C:\users\User\desktop\MonetaryEntry_"+time+".csv";
    mySheet = (Excel.Worksheet)myBook.Worksheets[1];


mySheet.SaveAs(Path, Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV);

此操作失败并显示以下错误

  

MonetaryEntryFormatting.exe中出现未处理的“System.Runtime.InteropServices.COMException”类型异常

     

其他信息:无法访问该文件。请尝试以下方法之一:

     

•确保指定的文件夹存在。

     

•确保包含该文件的文件夹不是只读文件。

     

•确保文件名不包含以下任何字符:< > ? []:|或者*

     

•确保文件/路径名称不超过218个字符。

然而,当我将Path字符串更改为

private static string path = "@C:\users\user\desktop\MonetaryEntry_.csv";

它结算了。

目标是迭代循环,每次保存为唯一的* .csv文件。每次都会生成未确定数量的.csv文件。

一些笔记;

向桌面写入我正在进行所有工作的用户帐户。如果相关,我会复制桌面上的文件并粘贴为其他名称并从那里开始工作。

我觉得我可能会遗漏一些相当简单的东西,因为这类问题通常是......

1 个答案:

答案 0 :(得分:1)

private static DateTime csvtime = DateTime.Now;
private static string time = csvtime.ToString("HH_mm_ss");
private static string Path = @"C:\users\User\desktop\MonetaryEntry_"+time+".csv";
mySheet = (Excel.Worksheet)myBook.Worksheets[1];
mySheet.SaveAs(Path, Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV);

这将改变tostring。 :不是路径中允许的字符。 (看看错误的第3个建议)