Я установил пароль на моем листе excel. Чтобы разблокировать рабочий лист, я изменил строку подключения OLEDB, но это не сработало. Я получил сообщение об ошибке, что «источник не содержит dataRows», что означает, что он не смог прочитать данные из файла excel.Как прочитать защищенный паролем лист Excel с OLEDB
Перед тем, как все было в порядке. Что может быть моей проблемой?
Это мой код:
public DataTable getExcelData(string fileName, string sheetName, ComboBox[] User_ComboBox)
{
this.m_comboBox = User_ComboBox;
// connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + fileName + "';Extended Properties= 'Excel 12.0 XML;HDR=No;IMEX=1'";
connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Password=xyz;Extended Properties='Excel 8.0;HDR=YES'";
string errorMessage = "";
DataTable dt = new DataTable();
try
{
string query = "SELECT * FROM [" + sheetName + "]";
OleDbConnection con = new OleDbConnection(connectionString);
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, con);
dataAdapter.Fill(dt);
}
catch (Exception exp)
{
// errorCode = ErrorDefinition.ERROR_OLEDBERROR;
errorMessage = exp.Message;
}
return dt;
}
Спасибо Rune. Поскольку мне нужно использовать ту же функцию в сети, мне нужно использовать OleDbConnection. Итак, невозможно ли прочитать лист Excel с защитой паролем, используя OleDbConnection? – Pragat123
Нет, я не думаю, что вы можете это сделать. –