使用 C# 使用 Interop 在 en excel 文件中添加日期时间戳

Posted

技术标签:

【中文标题】使用 C# 使用 Interop 在 en excel 文件中添加日期时间戳【英文标题】:Appending a datetime stamp in en excel file using Interop using C# 【发布时间】:2017-01-18 04:49:03 【问题描述】:

我正在寻找使用 Microsoft Excel 互操作将当前日期时间戳附加到文件名的特定位置保存一个 excel 文件。我可以在没有日期时间戳的情况下保存文件,但是每次尝试附加日期时间戳时,都会出现无法访问文件的异常。这是我的代码

xlWorkBook.SaveAs(System.DateTime.Now.ToString() + @"D:\Beeper.csv", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
//xlWorkBook.SaveAs(@"D:\Beeper.csv", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
//System.IO.File.Move(@"D:\Beeper.csv", System.DateTime.Now.ToString());
//xlWorkBook.SaveCopyAs(System.DateTime.Now);

xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();

releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);

我尝试了多种组合,但无法弄清楚发生了什么。有没有其他方法可以做到这一点。它只能是控制台应用程序。

【问题讨论】:

试试 xlWorkBook.SaveAs(string.Format("D:\\0_Beeper.csv", System.DateTime.Now.ToString()),......) 我相信您的代码失败,因为您在文件名之前添加了时间戳 我也试过添加它,但还是一样。 【参考方案1】:

我认为问题在于 DateTime.Now.ToString() 可能会返回您 像 mm/dd/yyy hh:mm:ss 这样的“/”字符在文件名中是非法的。 试试

 SaveAs(string.Format("D:\\Beeper_0.csv", DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss")));

【讨论】:

以上是关于使用 C# 使用 Interop 在 en excel 文件中添加日期时间戳的主要内容,如果未能解决你的问题,请参考以下文章

C# wordexcel转PDF,读取json数据

使用 C# 代码打开 Excel 工作簿时出错

如何在 C# 中读取 excel 文件而不使用 Microsoft.Office.Interop.Excel 库

如何在 C# 中使用 Microsoft.Office.Interop.Excel.Application 保存打开的文档?

在 C# 2.0 中编写 excel 文件而不使用任何第三方 dlls/interop/sdk

如何使用 c# interop 保存对原始 excel 文件的更改?