У меня есть идея вставить мою модель из Excel, используя отображение из таблицы.Потому что мой Excel HV более 100 столбцов.Будет уставать, если я буду писать код вручную, как я.У меня есть идея сохранить в базе данных имя заголовка Excel, функцию и строку для моей таблицы
Сначала я читаю свой Excel, затем захват в набор данных, затем foreach набор данных, затем для каждого отображения списка, затем с помощьюесли знать, пусто или нет, то читать функцию, используя замену, затем установить модель, используя таблицу сопоставления
Что я делаю:
[HttpPost]
public ActionResult upload(HttpPostedFileBase uploadFile)
{
private DB_Entities db = new DB_Entities();
dataset ds = new dataset();
ds = GetFileExcel(uploadFile);
foreach (DataRow dr in ds.Tables["Header$"].Rows)
{
tbl_header header = new tbl_header();
string name = dr["Name"].ToString();
if (name != "") {
var resultName = Convert.ToInt32(name);
header.name = resultName;
}
string address = dr["Address"].ToString();
if (address != "") {
var resultAddress = DateTime.ParseExact(address, "dd MMM yyyy", provider);
header.address = resultAddress;
}
string country = dr["Country"].ToString();
if (country != "") {
var resultCountry = db.tbl_Item.Where(a => a.Code == country).Select(a => a.Id).SingleOrDefault();
header.country = ResultCountry;
}
db.tbl_header.Add(header);
db.SaveChanges();
}
}
public partial class tblT_Pengeluaran_Header
{
public int name { get; set; }
public DateTime address { get; set; }
public int country { get; set; }
}
Что я хочу:
[HttpPost]
public ActionResult upload(HttpPostedFileBase uploadFile)
{
private DB_Entities db = new DB_Entities();
dataset ds = new dataset();
ds = GetFileExcel(uploadFile);
var mapping = db.Tbl_Mapping.toList();
foreach (DataRow dr in ds.Tables["Header$"].Rows)
{
tbl_header header = new tbl_header();
//foreach list mapping to doing:
//{
// string excel = ReadExcel
// if (excel != "") {
// string resultFunction = ReadFunction.Replace('[data]',excel);
// var result = Execute(resultFunction);
// header.ReadTable = result;
// }
//}
db.tbl_header.Add(header);
db.SaveChanges();
}
}
Таблица сопоставления Пример: Tbl_Mapping
table | excel | function
_____________________________________
name | Name | Convert.ToInt32([data]);
address | Address | DateTime.ParseExact([data], "dd MMM yyyy", provider);
country | Country | db.tbl_Item.Where(a => a.Code == [data]).Select(a => a.Id).SingleOrDefault();
.....
.....
Как это сделать?любая идея???Спасибо