我正在尝试从计算机上的目录中打开预先存在的excel文件。但是,当我的代码到达Workbooks.Open方法时,我得到一个COMexception。我不确定我错了什么。任何帮助表示赞赏。
using Microsoft.Office.Interop.Excel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
using System.Xml;
namespace Excel_Create
{
class Program
{
static void Main(string[] args)
{
string mySheet = @"C:\Users\Danny\Documents\Visual Studio 2013\Projects\MWS\MWS\bin\Debug\csharp-Excel.xls";
Excel.Application xlApp = new Excel.Application();
xlApp.Visible = true;
if (xlApp == null)
{
MessageBox.Show("Excel is not properly installed!!");
return;
}
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(mySheet,
0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "",
true, false, 0, true, false, false );
}
}
}
以下是异常所说的:类型&System; Run.Runtime.InteropServices.COMException'的未处理异常。发生在Excel_Create.exe
中其他信息:' C:\ Users \ Danny \ Documents \ Visual Studio 2013 \ Projects \ MWS \ MWS \ bin \ Debug \ csharp-Excel.xls'无法找到。检查文件名的拼写,并验证文件位置是否正确。
答案 0 :(得分:2)
找到适合我的解决方案:
var mySheet = Path.Combine(Directory.GetCurrentDirectory(), "Sample.xlsx");
Excel.Application xlApp = new Excel.Application();
xlApp.Visible = true;
if (xlApp == null)
{
MessageBox.Show("Excel is not properly installed!!");
return;
}
try
{
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(mySheet);
}
catch(Exception ex)
{
xlApp.Quit();
}
答案 1 :(得分:0)
我认为您的文件路径中的空格存在问题。
试试这个,而不是:
string mySheet = @"""C:\Users\Danny\Documents\Visual Studio 2013\Projects\MWS\MWS\bin\Debug\csharp-Excel.xls""";
答案 2 :(得分:0)
Excel.Application excelApp =
System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");