Я знаю, что этот вопрос задавался здесь несколько раз, но я последовал советам и все еще получаю сообщение об ошибке: External table is not in expected format.
В моем приложении есть DataGrid, который правильно отображает содержимое файла Excel, и когда я обновляю DataGrid, он показывает добавленную строку вфайл Excel. Но когда я открываю файл Excel, чтобы проверить, добавлена ли строка, это не так - новая строка не сохраняется.
Буду признателен за вашу помощь.
В моем приложении Wpf естьстрока подключения в App.config:
add name="ExcelConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=excel_file\\events2.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES""
Я использую OLEDB для соединения с файлом Excel:
public Events()
{
InitializeComponent();
System.Data.OleDb.OleDbConnection excelConnection;
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
var connectionString = ConfigurationManager.ConnectionStrings["ExcelConnectionString"].ToString();
excelConnection = new System.Data.OleDb.OleDbConnection(connectionString);
try
{
String sql = null;
excelConnection.Open();
myCommand.Connection = excelConnection;
sql = "Select * from [events$]";
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
System.Data.OleDb.OleDbDataAdapter dataAdp = new System.Data.OleDb.OleDbDataAdapter(myCommand);
DataTable dt = new DataTable("events");
dataAdp.Fill(dt);
dgData.ItemsSource = dt.DefaultView;
dataAdp.Update(dt);
excelConnection.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
excelConnection.Close();
}
}