Previously I was using ExcelPackage
to read data out of a .xlsx file. That was working fine but then I realized that ExcelPackage
doesn't work with the old .xls format. So I upgraded to using OleDbConnection
instead of ExcelPackage
like this:
var file = HttpContext.Current.Request.Files[0];
DataTable sheetData = new DataTable();
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
file.FileName + "; Jet OLEDB:Engine Type=5;Extended Properties="Excel 8.0;"";
using (OleDbConnection conn = new OleDbConnection(connStr))
{
conn.Open();
DataTable dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
string sheetName = dtSchema.Rows[0].Field("TABLE_NAME");
OleDbDataAdapter sheetAdapter = new OleDbDataAdapter("select * from [" + sheetName + "]", conn);
sheetAdapter.Fill(sheetData);
}
Basically just trying to read the first spreadsheet there. But I get this error in the exception:
Cannot update. Database or object is read-only.
What am I doing wrong? Is there some type of update operation hidden in there?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…