gpt4 book ai didi

c# - 调用 SaveAs 方法时出错

转载 作者:太空宇宙 更新时间:2023-11-03 20:30:52 25 4
gpt4 key购买 nike

我正在尝试在我的 C#/Winforms 应用程序中使用 MS Excel Interop 从 excel 文件创建一个 csv 文件。

我在下面的代码中的 SaveAs 方法上遇到了这个错误。

'The file could not be accessed. Try one of the following:

• Make sure the specified folder exists. • Make sure the folder that contains the file is not read-only. • Make sure the file name does not contain any of the following characters: < > ? [ ] : | or * • Make sure the file/path name doesn't contain more than 218 characters.'z

我尝试在 Workbook 的 Open(...) 方法中将 readonly 设置为 false,如下所示: Problem saving excel file after inserting data , 但仍然出现相同的错误。

在我的代码中,csv 文件路径是:C:\如果我将 csv 文件路径更改为 C:\SomeFolder 或某个共享的 UNC 路径,则不会出现此错误。

请指教,会不会是C盘权限问题?

代码如下:

xlApp = new Microsoft.Office.Interop.Excel.Application(); 
xlApp.DisplayAlerts = false;
xlApp.Visible = false;
wbkSrc = xlApp.Workbooks.Open(m_sSrcFil,
Type.Missing, false, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);


wstSrc = (Worksheet)wbkSrc.Worksheets[sSrcSht];
//wstSrc.Activate();

rngWork = wstSrc.Cells.get_Range("H:H", System.Reflection.Missing.Value);
rngWork.NumberFormat = "General";

dteTmpDate = Convert.ToDateTime(m_sBusDate);
sTmpFileName = m_sSrcFil.Substring(0, m_sSrcFil.IndexOf(".")) + "_" +
m_sUserName + "_" + dteTmpDate.ToString("yyyy_MM_dd") + ".Csv";

wstSrc.SaveAs(sTmpFileName, XlFileFormat.xlCSV, Type.Missing,
Type.Missing, true, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);

最佳答案

显然 sTmpFileName 是无效路径。错误消息会告诉您这一点。可能 m_sUserName 包含不允许的字符。可能是 DOMAIN\USER 格式的用户名。也许文件名真的太长了。或者可能有其他事情发生了。查看 sTmpFileName 的实际值,您将得到解释。


顺便说一句,您的代码错误地使用 SubStringIndexOf(".") 来获取不带扩展名的文件名。文件名中可以​​有多个句点。扩展只是 final 句点之后的文本。考虑这些文件名以及您的代码将如何处理它们:

C:\My.Folder.Name\TheFile.xls
C:\MyFolder\TheFile.Name.xls

相反,您应该使用 Path.GetFileNameWithoutExtension .

关于c# - 调用 SaveAs 方法时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7632081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com