C # читать открытый файл Excel через OleDb - PullRequest
4 голосов
/ 18 апреля 2011

Мне нужно подключиться к открытому файлу Excel 2003 с использованием .NET 3.5

Похоже, соединение OleDb, которое я пытаюсь использовать, хочет только этот файл.Но мне нужно одновременно открыть этот файл в Excel.

Возможно ли неблокирующее чтение возможно?

РЕДАКТИРОВАТЬ: Я решилэто путем копирования файла перед его открытием.

Ответы [ 4 ]

2 голосов
/ 01 июня 2011

вопрос, похоже, не имеет ответа.и я не могу удалить его ....

мое решение было - запустить макрос по таймеру, чтобы сохранить рассматриваемый файл Excel, и приложение C # копировало файл в другой и считывал его с помощью OleDb.

1 голос
/ 15 июля 2011

Обратитесь к приведенному ниже коду, чтобы получить информацию о данных Excel в массив.Затем вы выполните любые проверки на этом листе Excel.

var fileName = @"D:\Pavan\WorkDiployed.xlsx";
var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; data source={0}; Extended Properties=Excel 12.0;", fileName);
OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString);
OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", con);

con.Open();
System.Data.DataSet excelDataSet = new DataSet();
cmd.Fill(excelDataSet);
DataTable data = excelDataSet.Tables[0];

DataRow[] arrdata = data.Select();

foreach (DataRow rw in arrdata)
{
    object[] cval = rw.ItemArray;
}           

con.Close();
MessageBox.Show (excelDataSet.Tables[0].ToString ()); 
1 голос
/ 18 апреля 2011

Какие параметры вы передаете, когда открываете документ Excel?Не могли бы вы установить для параметра «ReadOnly» в Workbook.Open () значение true?См. здесь.

1 голос
/ 18 апреля 2011

Это похоже на похожую проблему: Запись в файл Excel с OLEDB

Вам это помогает?

...