2017-02-21 5 views
1

Excel에서 파일의 데이터를 읽으려고하지만 어떤 이유로 잘못되었습니다.Excel 파일에서 데이터를 읽으려면 어떻게해야합니까?

Excel.Application xlApp ; 
Excel.Workbook xlWorkBook ; 
Excel.Worksheet xlWorkSheet ; 
Excel.Range range ; 

string str; 
int rCnt ; 
int cCnt ; 
int rw = 0; 
int cl = 0; 

xlApp = new Excel.Application(); 
xlWorkBook = xlApp.Workbooks.Open(@"C:\Users\pc\Desktop\Alessio.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); 
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 

range = xlWorkSheet.UsedRange; 
rw = range.Rows.Count; 
cl = range.Columns.Count; 


for (rCnt = 1; rCnt <= rw; rCnt++) 
{ 
    for (cCnt = 1; cCnt <= cl; cCnt++) 
    { 
     str = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value2; 
     MessageBox.Show(str); 
    } 
} 

을 그리고 이것은 예외가 내가 얻을 수있다 :

"System.Runtime.InteropServices.COMException' in WindowsFormsApplication2.exe" 
Adding information:HRESULT: 0x80010105 (RPC_E_SERVERFAULT) 

당신이 알고 왜 내가이 문제를 해결할 수있는 방법이 내가 뭐하는 거지인가?

+1

런타임 오류는 어디에 있습니까? F10을 사용하여 디버깅을 시도하고 장소를 확인하십시오. 그 동안 다음을 시도해보십시오 :'str = range.Cells [rCnt, cCnt] .Value2;' – Vityata

+1

다음 코드 줄을 시도 할 때 예외가 발생합니다 : "xlWorkBook = xlApp.Workbooks.Open (@"C : \ Microsoft Office.Interop.Excel.XlPlatform.xlWindows, "\ t", false, false, 0, true, 0, true, 5, "", " 1, 0); " – Ale

답변

1

코딩 문제는 아닙니다. 프로젝트에서 Microsoft.Office.Interop.Excel/Office 참조를 제거하고 관련 버전 번호가있는 Office.Interop.Excel/Office 참조를 다시로드하십시오.

+0

안녕하세요 당신은 무엇을 의미합니까? – Ale

+0

이것을 확인하십시오 https://msdn.microsoft.com/en-us/library/dd264733.aspx – sofsntp

0

DataGridView에 모든 것을 넣을 수 있습니다.

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()); 
      } 
     } 
    } 
}