博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
导入Excel表中的数据
阅读量:6229 次
发布时间:2019-06-21

本文共 4486 字,大约阅读时间需要 14 分钟。

第一步:转换导入的文件

  private void btnSelectFile_Click(object sender, EventArgs e)   {       OpenFileDialog ofd = new OpenFileDialog();       ofd.Title = "Excel文件";       ofd.FileName = "";       ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);       ofd.Filter = "Excel文件(*.xls)|*.xls";       ofd.ValidateNames = true;       ofd.CheckFileExists = true;       ofd.CheckPathExists = true;       if (openFileDialog.ShowDialog() == DialogResult.OK)       {           txtFileName.Text = openFileDialog.FileName;       }    }

 第二步:执行导入

    private void btnImport_Click(object sender, EventArgs e)      {          if (cboSaleStock.SelectedIndex == -1)          {              MessageBox.Show("没有选择销售仓库");              return;          }          if (cboShop.SelectedIndex == -1)          {              MessageBox.Show("没有选择销售门店");              return;          }          if (string.IsNullOrEmpty(txtFileName.Text) || txtFileName.Text.Length == 0)          {              MessageBox.Show("没有选择Excel文件!无法进行数据导入");              return;          }          DataTable dt = ExcelToDataTable(txtFileName.Text);          string sql = string.Empty;          for (int i = 0; i < dt.Rows.Count; i++)          {              sql += string.Format(@" declare @sno{4} int,@dgrID{4} varchar(20)                                      set @dgrID{4}=(select top 1 dgoodsresultid from tbdGoodsResult where shopID='{0}' and stockid='{1}' and goodsid='{2}')                                      if @dgrID{4} is null begin                                          set @sno{4}=(select top 1 sno from tbpKeyManager where tablename='tbdGoodsResult')                                          if @sno{4} is null begin                                              insert into tbpKeyManager(tablename,sno,trdate) values('tbdGoodsResult',1,CONVERT(varchar(12),getdate(),112 ))                                              set @sno{4}=1                                          end else begin                                               set @sno{4}=@sno{4}+1                                               update tbpKeyManager set sno=sno+1 where tablename='tbdGoodsResult'                                          end                                          insert into tbdGoodsResult(dgoodsresultid,shopid,stockid,goodsid,pthismonthqty)                                           values(cast(@sno{4} as varchar(11)),'{0}','{1}','{2}','{3}')                                      end else begin                                          update tbdGoodsResult set pthismonthqty={3} where dgoodsresultid=@dgrID{4}                                      end", cboShop.SelectedValue, cboSaleStock.SelectedValue, dt.Rows[i][2], dt.Rows[i][1], i);          }          string msg = "";          if (ws.ExecuteNonQueryWithTrans(sql, ref msg) > 0)          {              MessageBox.Show("导入数据成功");          }          if (msg.Length > 0)          {              MessageBox.Show("导入数据失败:\r\n" + msg);          }      }

第三步:Excel数据导入

private DataTable ExcelToDataTable(string filePath)      {          //根据路径打开一个Excel文件并将数据填充到DataSet中          string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + filePath + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'";//导入时包含Excel中的第一行数据,并且将数字和字符混合的单元格视为文本进行导入          OleDbConnection conn = new OleDbConnection(strConn);          conn.Open();          string strExcel = "";          OleDbDataAdapter myCommand = null;          DataSet ds = null;          strExcel = "select  * from   [sheet1$]";          myCommand = new OleDbDataAdapter(strExcel, strConn);          ds = new DataSet();          myCommand.Fill(ds, "table1");          DataTable dt = ds.Tables[0];          dt.Columns.Add("goodsid");          string joinSql = "select '' pluno";          foreach (DataRow dr in dt.Rows)          {              joinSql += string.Format(" union all select '{0}' pluno", dr[0]);          }          string sql = string.Format(@"select tbgoods.goodsid,tbgoods.pluno from tbgoods join ({0}) as t on t.pluno=tbgoods.pluno ", joinSql);          DataTable dtGoods = cf.GetDataSet(sql).Tables[0];          foreach (DataRow dr in dt.Rows)          {              foreach (DataRow dr1 in dtGoods.Rows)              {                  if (dr[0].ToString().ToUpper() == dr1["pluno"].ToString())                  {                      dr["goodsid"] = dr1["goodsid"].ToString();                  }              }          }          return ds.Tables[0];      }

 

转载地址:http://dgtna.baihongyu.com/

你可能感兴趣的文章
[MicroPython]TurniBit开发板DIY自动窗帘模拟系统
查看>>
Python3.4 12306 2015年3月验证码识别
查看>>
从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
查看>>
windows查看端口占用
查看>>
Yii用ajax实现无刷新检索更新CListView数据
查看>>
JDBC的事务
查看>>
Io流的概述
查看>>
App 卸载记录
查看>>
JavaScript变量和作用域
查看>>
开源SIP服务器加密软件NethidPro升级
查看>>
作业:实现简单的shell sed替换功能和修改haproxy配置文件
查看>>
Altium 拼板方法以及 注意的 地方
查看>>
Apache Pulsar中的地域复制,第1篇:概念和功能
查看>>
python pip install 出现 OSError: [Errno 1] Operation not permitted
查看>>
oracle12C 重做日志
查看>>
zookeeper与kafka安装部署及java环境搭建(发布订阅模式)
查看>>
从源码分析scrollTo、scrollBy、Scroller方法的区别和作用
查看>>
ObjectOutputStream和ObjectInputStream
查看>>
创建使用 framework和 a静态库
查看>>
Codeigniter 4.0-dev 版源码学习笔记之五——相对于 3.x 的变化
查看>>