2016-10-10 15 views
0

Excelファイルを開くために使用するこのコードは、C#yにあります。Excelファイルを開くusint C#を使用したInterop

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"); 

このコードは2日前に正常に機能しました。私は何も変更していないし、今Excelファイルを開く行にエラーが発生します。 まず私は、メッセージが

を「Excelが情報を回復しようとしている」を参照してください。その後、私は例外を取得「リモートプロシージャコールでエラーが発生しました。(ExcepciónデHRESULT:0x800706BE)」

私にはわからない何うまくいかない。私はこのウェブで説明されているように参照をチェックしました。 http://csharp.net-informations.com/excel/csharp-open-excel.htm

+0

パスのスペルが間違っています。正しいパスは "C:\\ plantilla2.xlsx"です。ファイルはそのパスにあります。 – Kezern

+0

ブックを開く前に 'oXL.Visible' = trueに設定してみてください。 Excelから、手がかりを与えるエラーメッセージが表示されることがあります。またはExcelを使用してExcelファイルを対話形式で開くこともできます。また、タスクマネージャを使用して、おそらく前回アプリケーションを実行したときから、Excelのインスタンスがまだ実行されていないかどうかを確認します。 – Joe

+0

すべてのExcelのアドインを無効にして、エラーがまだ発生するかどうかを確認できます。それは私のためにそれを解決しました。 – ltiveron

答えて

0

RPCサービスのように見えます。サービス "リモートプロシージャコール(RPC)"ここで "コントロールパネル\管理ツール\サービス"が "実行中"状態であることを確認していますか?

0

私は何が起こったのか分かりません。私はコンピュータを再起動し、今は動作します。

0

これが役立ちます。

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

関連する問題