如何导入Excel模板

protected void DownLoadT_Click(object sender, EventArgs e)
{

  DownloadFileUTF8("评片记录导入模板表.xlsx", "../dot/评片记录导入模板表.xlsx", false);
}

第一个参数是文件的名字,第二个参数是文件的路径,是否需要删除

就是需要先下载模板,然后根据下载的模板填写数据,最后上传Excel,将Excel中的数据导入到数据库中

当我点击浏览,上传填写完数据的Excel文档,此时导入数据的按钮也可以进行提交,如果需要哪些数据,就选择复选框进行勾选即可

 

 当选择一个文件的时候

public static DataTable ImportExcelFile(string filePath)
{
  IWorkbook hssfworkbook;
      try{
      using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read)){
     hssfworkbook = new HSSFWorkbook(file);
     file.Close();}
      }
   catch (Exception e){
   using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
   {
    hssfworkbook = new XSSFWorkbook(file);
    file.Close();
  }
 }

ISheet sheet = hssfworkbook.GetSheetAt(0);

System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
DataTable dt = new DataTable();
int colnum = sheet.GetRow(0).LastCellNum;
for (int j = 0; j < colnum; j++)
{
  dt.Columns.Add("A" + (j + 1).ToString());
}
rows.MoveNext();
while (rows.MoveNext())
{
  IRow row = (IRow)rows.Current;
  DataRow dr = dt.NewRow();
    for (int i = 0; i < row.LastCellNum && i < colnum; i++) {
    NPOI.SS.UserModel.ICell cell = row.GetCell(i);
   if (cell == null)
{
dr[i] = null;
}
else
{
{
dr[i] = cell.ToString();
}
}
}
dt.Rows.Add(dr);
}

hssfworkbook.Close();

return dt;
}

当点击导入按钮的时候 

protected void importExcel_Click(object sender, EventArgs e)
{
int num = 0;
foreach (int rowno in Grid1.SelectedRowIndexArray)
{
GridRow row = Grid1.Rows[rowno + Grid1.PageIndex * Grid1.PageSize];
string C1 = row.Values[1].ToString().Trim();
string C2 = row.Values[2].ToString().Trim();
string C3 = row.Values[3].ToString().Trim();
string C4 = row.Values[4].ToString().Trim();
string C5 = row.Values[5].ToString().Trim();
string C6 = row.Values[6].ToString().Trim();
string C7 = row.Values[7].ToString().Trim();
XElement el = new XElement("root"
, new XElement("Type", "Insert")
, new XElement("MainAID", YID.Text)
, new XElement("FormID", FormID.Text)
, new XElement("Text1", C1)
, new XElement("Text2", C2)
, new XElement("Text3", C3)
, new XElement("Text4", C4)
, new XElement("Text5", C5)
, new XElement("Text6", C6)
, new XElement("Text7", C7)
, new XElement("Creator",getUserName()));
bool retVal = Govaze.SQLServerDAL.Factory.getDataXmlDAL().ExecProc(el.ToString(), "DataXmlRec");
if (retVal)
{
num++;
}
else
{
Alert.Show(string.Format("本次共导入{0}个数据!", num));
return;
}
}
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());

}

原文地址:https://www.cnblogs.com/sanshengshitouhua/p/14473259.html