使用 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# 中读取 excel 文件而不使用 Microsoft.Office.Interop.Excel 库
如何在 C# 中使用 Microsoft.Office.Interop.Excel.Application 保存打开的文档?