zoukankan      html  css  js  c++  java
  • Excel 批量出来数据

     try
                {
                    string sheetname = TextBox1.Text.Trim();
    
                    HttpPostedFile upLoadPostFile = FileUpload1.PostedFile;
                    string upLoadPath = FileUpload1.PostedFile.FileName;
                    if (upLoadPath == "")
                    {
                        ShowAlertMessage("请选择上传文件!");
                        return;
                    }
                    string excelType = upLoadPath.Split('.')[1].ToString();
                    if (excelType != "xls" && excelType != "xlsx")
                    {
                        ShowAlertMessage("此文件不是xls或者xlsx格式,请重新选择上传文件格式!");
                    }
                    else
                    {
                        InvoiceData.PutInvoiceJsonByExcel(sheetname, upLoadPostFile);
                        ShowAlertMessage("发送开票请求完毕!");
                    }
                }
                catch (Exception ex)
                {
                    CustomValidator1.ErrorMessage = ex.Message;
                    CustomValidator1.IsValid = false;
                }
    public static void PutInvoiceJsonByExcel(string sheetName, HttpPostedFile upLoadPostFile)
            {
                try
                {
                    //创建一个数据链接
                    StringBuilder strCon = new StringBuilder();
                    strCon.Append("Provider=Microsoft.ACE.OLEDB.12.0;");
                    strCon.Append("Data Source=" + upLoadPostFile.FileName + ";");
                    strCon.Append("Extended Properties="Excel 12.0;IMEX=1;"");
    
                    OleDbConnection myConn = new OleDbConnection(strCon.ToString());
                    string strCom = "SELECT * FROM [" + sheetName + "$] ";
                    myConn.Open();
                    //打开数据链接,得到一个数据集
                    OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
                    DataSet myDataSet = new DataSet();
                    //得到自己的DataSet对象
                    myCommand.Fill(myDataSet, sheetName);
    
                    myConn.Close();
                    myConn.Dispose();
                    foreach (DataRow dr in myDataSet.Tables[0].Rows)
                    {
                        string strOrderSn = dr[0].ToString().Trim();
                        DataTable dt = OrderData.GetInvoiceByOrderSn(strOrderSn);
                        InvoiceData.PutInvoiceJson(dt);
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception("PutInvoiceJsonByExcel Error: " + ex.Message);
                }
            }
    在做到需求的时候,改变了上传的Excel的上传格式,就是从Excel的第三行开始读取数据,在sql链接的地方做的属性HRD=yes;只能过滤掉第一行,但是现在是要过滤掉前两行的内容。
    emmmmmmmma
    应该这样做
    Method1: 在进行select的时候,加上sheet的范围: string strCom = "SELECT * FROM [" + sheetName + "$B2:E4] "; 就是上面的这样 $后面加上要读取数据的范围就ok了==》B2到E4的覆盖的数据, 但是,它是已B2为坐标原点,向右向下延伸,涉及到的当前右行和下行的数据是读不到的。 Method2: //下面i的初始值等于几,就是从第n+1行开始读取的 for (int i = n; i < dt.Rows.Count; i++) { string Col1 = dt.Rows[i][1].ToString(); //得到第一列 订单号: string Col2 = dt.Rows[i][2].ToString();//得到第2列 运单号 string Col3 = dt.Rows[i][3].ToString();//得到第三列 子单号 string Col4 = dt.Rows[i][4].ToString();//得到第4列 回签单号 }

      

  • 相关阅读:
    修改linux命令行提示符颜色
    passwd命令
    用户与用户组
    计划任务
    sed简单用法
    sed命令实现对文件内容的添加
    C#颜色选择器的调用操作
    插入排序算法的学习
    二叉树的学习记录
    判断两个单链表是否相交及相交的第一个节点
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/9894774.html
Copyright © 2011-2022 走看看