You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DS7/DSWeb/box/BoxBusinessExcel.aspx.cs

150 lines
5.6 KiB
C#

2 years ago
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebSqlHelper;
using System.Data.OleDb;
using System.Collections;
using System.Data;
namespace DSWeb.box
{
public partial class BoxBusinessExcel : System.Web.UI.Page
{
private string username;
protected void Page_Load(object sender, EventArgs e)
{
if (Session["SHOWNAME"] != null)
{
username = Session["SHOWNAME"].ToString();
}
if (!IsPostBack)
{
HttpHelper.BindDropDownList(Vessel, BaseClass.db.GetSqlStrTable("select * from code_vessel order by VESSEL"), "vessel", "vessel", 1);
bindVessel();
}
Page.ClientScript.RegisterStartupScript(this.GetType(), "key0", "<script>initComboPort();</script>");
}
protected void bindVessel()
{
//DropDownList dd = Position;
//dd.Items.Clear();
//dd.Items.Add(new ListItem("--请选择--", ""));
//DataTable dt = BaseClass.db.GetSqlStrTable("select * from code_disport order by port asc");
//foreach (DataRow dr in dt.Rows)
//{
// dd.Items.Add(new ListItem(dr["port"].ToString() + " | " + dr["cname"].ToString(), dr["PORTID"].ToString()));
//}
}
protected void ibexcel_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(Vessel.SelectedValue))
{
Alert("请选择船名");
return;
}
if (string.IsNullOrEmpty(Voyage.Text))
{
Alert("请输入航次");
return;
}
if (string.IsNullOrEmpty(Etd.Text))
{
Alert("请输入ETD");
return;
}
if (string.IsNullOrEmpty(ReachTime.Text))
{
Alert("请输入到达日期");
return;
}
if (string.IsNullOrEmpty(Request["ddlPORT0"].ToString()))
{
Alert("请选择起运港");
return;
}
if (string.IsNullOrEmpty(Request["ddlPORT"].ToString()))
{
Alert("请选择目的港");
return;
}
if (!string.IsNullOrEmpty(file.FileName))
{
string fileurl = Server.MapPath("/Reports/Import/" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");
file.PostedFile.SaveAs(fileurl);
DataSet ds = LoadDataFromExcel(fileurl, ExcelSheetName(fileurl)[0].ToString());
// B/LNO CNTR NO
//Response.Write(ds.Tables[0].Rows[0]["B/LNO"].ToString());
Alert2(business.importBoxBusiness(ds.Tables[0], Vessel.SelectedValue, Voyage.Text, Etd.Text, Request["ddlPORT"].ToString(), hd_comboPORT.Value, ReachTime.Text, Request["ddlPORT0"].ToString(), username.ToString()));
}
else
{
Alert("请选择要导入的文件");
return;
}
}
public DataSet LoadDataFromExcel(string filePath, string table)
{
string strConn;
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;IMEX=1;'";
using (OleDbConnection OleConn = new OleDbConnection(strConn))
{
OleConn.Open();
String sql = "SELECT * FROM [" + table + "$]";//可是更改Sheet名称比如sheet2等等
OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
DataSet OleDsExcle = new DataSet();
OleDaExcel.Fill(OleDsExcle);
//OleConn.Close();
return OleDsExcle;
}
}
public ArrayList ExcelSheetName(string filepath)//获取excel的sheet的名字列表 注意:名字后不带$
{
ArrayList al = new ArrayList();
string strConn;
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;IMEX=1;'";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
DataTable sheetNames = conn.GetOleDbSchemaTable
(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
conn.Close();
foreach (DataRow dr in sheetNames.Rows)
{
al.Add(dr[2].ToString().TrimEnd('$'));
}
return al;
}
// Methods
public void Alert(string msg)
{
ScriptManager.RegisterClientScriptBlock(this, base.GetType(), WebSqlHelper.Common.RndNum(8), "alert('" + msg + "');", true);
}
public void Alert2(string msg)
{
ScriptManager.RegisterClientScriptBlock(this, base.GetType(), WebSqlHelper.Common.RndNum(8), "alert('" + msg + "');window.parent.opener.location.href = window.parent.opener.location.href;", true);
}
public void Run(string script)
{
ScriptManager.RegisterClientScriptBlock(this, base.GetType(), WebSqlHelper.Common.RndNum(8), script, true);
}
public void ShowMessageAndRedirect(string Message, string Redirect)
{
ScriptManager.RegisterClientScriptBlock(this, base.GetType(), WebSqlHelper.Common.RndNum(8), "alert('" + Message + "');" + (string.IsNullOrEmpty(Redirect) ? "" : "location='" + Redirect + "';"), true);
}
}
}