使用c#使用int互操作打开Excel文件

本文关键字:使用 Excel 文件 互操作 int | 更新日期: 2023-09-27 18:12:35

我有这段代码在c#中用来打开Excel文件。

Excel.Application oXL = new Excel.Application();
Excel._Workbook oWB;
String filename = "C:''plantilla2.xlsx";
oWB = oXL.Workbooks.Open(filename, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "'t", false, false, 0, true, 1, 0);
MessageBox.Show("FIN");

这段代码两天前还可以正常工作。我没有改变任何东西,现在我在打开excel文件的行中得到一个错误。首先,我看到一条消息"Excel正在尝试恢复信息"

之后,我得到异常"Error in remote procedure call "。(Excepción de HRESULT: 0x800706BE)"

我不知道哪里出错了。我已经检查了在这个网站上解释的参考资料。http://csharp.net-informations.com/excel/csharp-open-excel.htm

使用c#使用int互操作打开Excel文件

看起来RPC服务关闭了。您是否确保"控制面板'管理工具'服务"中的"远程过程调用(RPC)"处于"运行"状态?

我不知道发生了什么事。我已经重新启动了电脑,现在可以运行了。

这应该有帮助。

using System;
using System.Drawing;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel; 
namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                System.Data.OleDb.OleDbConnection MyConnection ;
                System.Data.DataSet DtSet ;
                System.Data.OleDb.OleDbDataAdapter MyCommand ;
                MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:''csharp.net-informations.xls';Extended Properties=Excel 8.0;");
                MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection);
                MyCommand.TableMappings.Add("Table", "TestTable");
                DtSet = new System.Data.DataSet();
                MyCommand.Fill(DtSet);
                dataGridView1.DataSource = DtSet.Tables[0];
                MyConnection.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show (ex.ToString());
            }
        }
   }
}

见链接

http://csharp.net-informations.com/excel/csharp-excel-oledb.htm