我有三個excel文件,都具有相同的主鍵。我將這些excel文件上傳到我的應用程序中,並希望將它們全部合併到一個數據集/數據表中(無論哪個更容易)。我已經嘗試了幾件事但未成功。從多個Excel文件合併/合併數據集
這裏是我目前正在...
[HttpPost]
public async Task<ActionResult> Index(ICollection<IFormFile> files)
{
var uploads = Path.Combine(_environment.WebRootPath, "uploads");
DataSet ds = new DataSet();
IExcelDataReader reader = null;
DataTable dt = new DataTable();
foreach (var file in files)
{
Dataset ds2 = null;
if (file == null || file.Length == 0)
{
ViewBag.Error = "Please Select An Excel File<br>";
return View("Index");
}
else
{
using (var fileStream = new FileStream(Path.Combine(uploads, file.FileName), FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
await file.CopyToAsync(fileStream);
if (file.FileName.EndsWith("xls"))
{
reader = ExcelReaderFactory.CreateBinaryReader(fileStream);
}
else if (file.FileName.EndsWith("xlsx"))
{
reader = ExcelReaderFactory.CreateOpenXmlReader(fileStream);
}
else
{
ViewBag.Error = "File type is incorrect<br>";
return View("Index");
}
reader.IsFirstRowAsColumnNames = true;
//set the second dataset as the value of the excel data
ds2 = reader.AsDataSet();
//merge the second dataset with the first...
ds.Merge(ds2);
}
}
}
dt = ds.Tables[0];
return View("Index", dt);
}
我需要指定數據集的主鍵?目前,它正在遍歷我的所有三個Excel電子表格,但僅輸出第一個數據集作爲數據表。
任何輸入表示讚賞。
這是真棒。非常感謝。我不得不扼殺列的一些數據類型,但經過一些轉換後,它工作得很完美! – dev53