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); // 然后绑定下拉框
}
}) };