excel 文件转 dataset ,jqgrid 中 模糊查询与下拉联动的实现

1.  最近项目中用到了 excel上传的功能,其中上传的方法网上很多,这里只整理了下用到的excel文件转换为dataset 的方法:

/// <summary>
    /// EXCEL 转 dataset
    /// </summary>
    /// <param name="filenameurl">全路径(含文件名)</param>
    /// <param name="table">文件名用作表名</param>
    /// <returns></returns>
    public DataSet ExecleDs(string filenameurl, string table)
    {
        DataSet ds = new DataSet();
        string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 12.0; HDR=YES; IMEX=1'"; //此连接可以操作.xls与.xlsx文件 (支持Excel2003 和 Excel2007 的连接字符串)
        //备注: "HDR=yes;"是说Excel文件的第一行是列名而不是数据,"HDR=No;"正好与前面的相反。//      "IMEX=1 "如果列中的数据类型不一致,使用"IMEX=1"可必免数据类型冲突。 
        OleDbConnection conn = new OleDbConnection(strConn);
        try
        {
            //string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
            conn.Open();
            OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);
            odda.Fill(ds, table);
            return ds;
        }
        catch (System.Exception ex)
        {
            return ds;
        }
        finally
        {
            conn.Close();
        }
    }

值得注意的是 <param name="table">文件名用作表名</param> table 是通过 System.IO.Path.GetFileNameWithoutExtension(filenameurl) 处理后的不具有扩展名的文件名;

2.因项目中 有类似下图的需求:

在jqgrid中新增或修改时根据 模糊查询出的订单号 带出 相关联的 二级单位信息,具体的jqgrid 各种参数详解 可参考(http://www.cnblogs.com/younggun/archive/2012/08/27/2657922.html)  ,具体的实现方式如下 

{ name: "OrderNo", width: 130, editable: true, editrules: { required: true }, formoptions: { elmsuffix: ("<span style='color:red'>*</span>") },
editoptions: {dataInit: loadAutoCompleteTransportPlan}},

 { name: 'HigherAuthorityCode', width: 100,  editable: true, editrules: { required: true}, formoptions: { elmsuffix: ("<span style='color:red'>*</span>") }, edittype: 'select', editoptions: { maxlength: 50, dataUrl: "" }},
                 

OrderNo 为订单号,HigherAuthorityCode为二级单位;实现级联的控制方法:

function loadAutoCompleteTransportPlan(elem) {
    $(elem).autocomplete({
      source: transportplandata//订单号的数据源
, change: function (e) {//change事件
var typeCode = document.getElementById("OrderNo").value; if (typeCode == null || typeCode == "") { return; } var params = { "order": document.getElementById("OrderNo").value }; var strhcode = "";
$.ajax({ url:
"/TransportPlan/Get_TransportPlan_ByOrderNo",//通过订单号查询关联的二级单位信息
data:
params, dataType: "json", cache: false, success: function (data) { for (var i = 0; i < data.length; i++) {
if (i != length - 1) {
                       strhcode
+= "<option>" + data[i].HigherAuthorityCode+ "</option>;";
                  }
          else {
                      strhcode
+= "<option>" + data[i].HigherAuthorityCode+ "</option>";
                   }
//document.getElementById(
"HigherAuthorityCode").value = data[i].HigherAuthorityCode; } } });      var higherAuthoritycode= $("select#HigherAuthorityCode");   //获取二级单位的name
         higherAuthoritycode.append(strhcode);                        
// 然后绑定下拉框
}
}) };


  

转载于:https://www.cnblogs.com/xiaozou1018/archive/2013/05/25/3098540.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值