2009-09-23 9 views
0

Правильный ли это способ доступа к файлу MS Office Excel 2007?C# Доступ к рабочему листу Excel

 String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + 
    "Data Source=" + file_path + ";Extended Properties=Excel 8.0;"; 

Если да, то каким образом я могу получить доступ к определенному листу и вставить строки? Ссылки также приветствуются.

ответ

1

соединения Строка

connectionString = @"provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + @";Extended Properties=""Excel 12.0;HDR=YES;IMEX=1"""; 

чтения данных

excelConnection = new System.Data.OleDb.OleDbConnection(connectionString); 
     excelConnection.Open(); 
     dbSchema = excelConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); 
     firstSheetName = dbSchema.Rows[0]["TABLE_NAME"].ToString(); 
     strSQL = "SELECT * FROM [" + firstSheetName + "]"; 
     da = new OleDbDataAdapter(strSQL, excelConnection); 
     da.Fill(dt); 

записи данных см Excel Generation это использует автоматику, хотя. Это может помочь.

1

Вы можете использовать Excel Interop (Microsoft.Office.Interop.Excel):

Вот отрывок из какой-то код:

object missing = (object) Type.Missing; 

Application app = new Application(); 

Workbooks books = app.Workbooks; 

Workbook book = books.Open("somefile.xls", missing, missing, missing, missing, missing, missing, 
      missing, missing, missing, missing, missing, missing, missing, missing); 

Worksheet sheet = (Worksheet)book.Worksheets[1]; 

Он получил несколько weirdnesses (как и "отсутствует" параметры), но работает довольно гладко. Если вы примете такой подход, будьте осторожны, чтобы процесс EXCEL.exe не потерял сиротства.

Смежные вопросы