【发布时间】:2017-01-31 04:12:38
【问题描述】:
我正在制作一个 asp.net 网站,它显示来自上传的 excel 文件的数据表
我想将 excel 列“Ciudad”和“ClienteProveedr”中的名称与具有相同名称的表(这些表来自 sql server 数据库)进行比较,所以我想显示两个数据表中的 id数据表区域。
这是我正在制作的示例代码。
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack && Upload.HasFile)
{
if (Path.GetExtension(Upload.FileName).Equals(".xlsx"))
{
var excel = new ExcelPackage(Upload.FileContent);
var Facturas = excel.ToDataTable();
//fix ClienteProveedor
Facturas.Columns.Add("Proveedor", typeof(Int32));
Facturas.Columns.Add("MasivoFacturacion_Solicitantes", typeof(Int32));
Facturas.Columns.Add("MasivoFacturacion_Empresa", typeof(Int32));
Facturas.Columns.Add("MasivoFacturacion_EmpresaMensajeria", typeof(Int32));
Facturas.Columns.Add("idCiudad", typeof(Int32));
Facturas.Columns.Add("MasivoFacturacion_ClienteProveedor", typeof(Int32));
foreach (DataRow rw in Facturas.Rows)
{
rw["Proveedor"] = Responsable.SelectedIndex;
rw["MasivoFacturacion_Solicitantes"] = DropDownListSolicitantes.SelectedIndex + 1;
rw["MasivoFacturacion_Empresa"] = DropDownListEmpresa.SelectedIndex + 1;
rw["MasivoFacturacion_EmpresaMensajeria"] = DropDownListEmpresaMensajeria.SelectedIndex + 1;
rw["MasivoFacturacion_ClienteProveedor"] = /*row for IdClienteProveedor*/;
rw["MasivoFacturacion_ClienteProveedor"] = /*row for IdCIudad*/;
}
gvData.DataSource = Facturas;
gvData.DataBind();
ViewState["dtFacturas"] = Facturas;
}
}
}
【问题讨论】:
-
excel.ToDataTable 返回什么?它实际上是一个数据表吗?如果是这样,您不需要手动添加列并遍历行。只需设置 DataSource 并绑定它。
-
是的,excel.ToDataTable方法将数据从exce文件导入到数据表中
标签: c# asp.net sql-server