我正在使用 C# LinqToExcel 将数据从电子表格上传到数据库。我注意到当文件打开时,它能够从电子表格中检索数据。但是,如果它没有在我的机器上打开,我会收到此错误:
base {System.Data.Common.DbException} = {"External table is not in the expected format."}
Errors = {System.Data.OleDb.OleDbErrorCollection}
这是我尝试扩展结果视图的时候。
这是我的 C# 代码:
[HttpPost]
public void CreateUsersBulk(ModelBulkUpload model, HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0) // Pass to Data Layer if true
{
DataLayer.ExcelParser ex = new DataLayer.ExcelParser();
ex.BulkUploadChoice(model.Type.ToString().Trim().ToLower(), file);
}
}
public void BulkUploadChoice(string Choice, System.Web.HttpPostedFileBase File)
{
switch (Choice)
{
case "create":
BulkUploadCreate(File);
break;
case "edit":
BulkUploadEdit();
break;
}
}
public void BulkUploadCreate(System.Web.HttpPostedFileBase File)
{
var excel = new ExcelQueryFactory();
excel.FileName = "C:/Users/nickgowdy/Desktop/UM Bulk Upload/UM - BulkUpload.xlsm";
//excel.DatabaseEngine = LinqToExcel.Domain.DatabaseEngine.Ace;
var query = from q in excel.Worksheet("Users")
select q;
//var query = from q in excel.("A1", "L20", "Users")
// select q;
foreach (LinqToExcel.Row row in query)
{
Model.ModelUser u = new Model.ModelUser();
}
}
我是否需要编写更多代码才能让它按我想要的方式工作。我基本上是在他们单击上传按钮从 Windows 资源管理器窗口中选择电子表格时。我不希望在此代码运行时打开电子表格。