【问题标题】:C# excel SaveAs file could not be accessed when saving保存时无法访问 C# excel SaveAs 文件
【发布时间】:2015-07-16 14:15:16
【问题描述】:

尝试以编程方式将 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 个。

但是当我将路径字符串更改为

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

解决了。

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

一些笔记;

将我目前正在使用的用户帐户写入桌面。如果相关,我会在桌面上复制一个文件并粘贴为不同的名称,然后从那里开始工作。

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

【问题讨论】:

  • 文件名中不能包含:,请在格式字符串中使用其他字符。
  • 它不太可能,如果你循环,每个时间值在每个周期都是唯一的。

标签: c# excel csv save-as


【解决方案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。 : 不是路径中允许的字符。 (看错误的第三条建议)

【讨论】:

  • 哇,我感觉很糟。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-30
  • 1970-01-01
  • 1970-01-01
  • 2014-08-30
  • 2022-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多