将数据从 c# 保存到 Excel 崩溃
Posted
技术标签:
【中文标题】将数据从 c# 保存到 Excel 崩溃【英文标题】:saving data from c# to Excel crashes 【发布时间】:2021-07-22 12:04:34 【问题描述】:我从事一个项目,我想将一些数据保存在 Excel 工作表中,
这是我的代码:
private void myButton11_Click(object sender, EventArgs e)
Microsoft.Office.Interop.Excel.Application excel;
Microsoft.Office.Interop.Excel.Workbook excelworkbook;
Microsoft.Office.Interop.Excel.Worksheet excelsheet;
excel = new Microsoft.Office.Interop.Excel.Application();
excel.Visible = false;
excel.DisplayAlerts = false;
excelworkbook = excel.Workbooks.Add(Type.Missing);
excelsheet = (Microsoft.Office.Interop.Excel.Worksheet)excelworkbook.ActiveSheet;
excelsheet.Name = "dataToExcel";
// fill in data
excelsheet.Cells[1, 1] = "test";
excelsheet.Cells[3, 3] = "test2";
// save excel
excelworkbook.SaveAs(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "//dataToExcel.xls",
Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal);
true, true, 1, 10, false);
问题是执行它时崩溃并显示以下错误消息:
System.Runtime.InteropServices.COMException
HResult=0x800A03EC
Message=Coudn't access file. Please try thoses options :
• Make sure the file exist.
• Make sure the file is not in read only.
• Make sure file path isn't containing thoses characteres: < > ? [ ] : | or *
• Make sure the file path and names do not take more than 218 caracteres.
C:\Users\corentin.boudaud\source\repos\FabLoop_project_V0.0.0\FabLoop_project_V0.0.0\Program.cs :ligne 20
崩溃发生在“SaveAs”上,我正在写入的文件在我的文档中(公开,可写入)
知道问题出在哪里吗?
谢谢
【问题讨论】:
推荐使用nuget.org/packages/EPPlus或nuget.org/packages/ClosedXML 真的是说“那些选项”和“那些字符”还是你自己翻译了错误信息? Message=我们无法访问该文件。尝试以下选项之一: - 确保指定的文件夹存在。 - 确保包含该文件的文件夹未处于只读模式。 - 确保文件名和文件夹路径不包含以下任何字符: ? [ ] : |或 * - 确保文件名和文件夹路径不超过 218 个字符。 以下内容可能会有所帮助:***.com/questions/65045576/… 该代码适用于我,请检查您的路径并确保文件路径和名称不超过 218 个字符。此外,您可以考虑将其保存到其他路径并再次测试。 【参考方案1】:您可以轻松地将其保存为 .csv 文件。 CSV也是一个表格,如果你打开它,它会在excel中打开。
您可以使用 System.IO 做到这一点
这是 excel 中的 csv 文件:
这是notepad++中的一个csv文件
【讨论】:
我正在寻找人类可以阅读的东西...... csv 可能是这个问题 不,当您在 exel 中打开 csv 时,它是一个普通表 我添加了图片【参考方案2】:我发现了问题,
使用excelworkbook.SaveAs()时,路径需要使用'\'来设置路径,而不是'/'
然后我可以根据需要保存文件,.csv .xls 或 .xlsx
【讨论】:
以上是关于将数据从 c# 保存到 Excel 崩溃的主要内容,如果未能解决你的问题,请参考以下文章
尝试从响应 Swift Alamofire 将数据保存到核心数据时崩溃