asp如何导入excel内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp如何导入excel内容相关的知识,希望对你有一定的参考价值。
由于产品比较多,想求用asp实现excel导入access的办法,
DataSet _Table = GetTableName(Server.MapPath(@"upload/" + Request.Cookies["sa"].Value + "/" + this.ListBox1.SelectedValue), this.DropDownList1.SelectedValue); //首先获取EXCEL文件路径string[] list = Request["checkbox"].Split(",".ToCharArray()); 要导入的列,代码不贴了
string CompanyName = string.Empty, Person_in_charge = string.Empty, Mobile = string.Empty, Phone = string.Empty, Fax = string.Empty, E_mail = string.Empty, Address = string.Empty, IMQQ = string.Empty, AliWW = string.Empty, Website = string.Empty;
if (_Table.Tables[0].Rows.Count > 0)
for (int i = 0; i != _Table.Tables[0].Rows.Count; i++)/
for (int j = 0; j < list.Length; j++)/判断每个列的数据,然后处理
string[] arr = list[j].ToString().Split("|".ToCharArray());
if (Request[list[j].ToString()] == "CompanyName")
CompanyName = CompanyName + _Table.Tables[0].Rows[i][arr[1].ToString()].ToString();
if (Request[list[j].ToString()] == "Person_in_charge")
Person_in_charge = Person_in_charge + _Table.Tables[0].Rows[i][arr[1].ToString()].ToString();
if (Request[list[j].ToString()] == "Mobile")
Mobile = Mobile + _Table.Tables[0].Rows[i][arr[1].ToString()].ToString();
if (Request[list[j].ToString()] == "Phone")
Phone = Phone + _Table.Tables[0].Rows[i][arr[1].ToString()].ToString();
if (Request[list[j].ToString()] == "Fax")
Fax = Fax + _Table.Tables[0].Rows[i][arr[1].ToString()].ToString();
if (Request[list[j].ToString()] == "E-mail")
E_mail = E_mail + _Table.Tables[0].Rows[i][arr[1].ToString()].ToString();
if (Request[list[j].ToString()] == "Address")
Address = Address + _Table.Tables[0].Rows[i][arr[1].ToString()].ToString();
if (Request[list[j].ToString()] == "IMQQ")
IMQQ = IMQQ + _Table.Tables[0].Rows[i][arr[1].ToString()].ToString();
if (Request[list[j].ToString()] == "AliWW")
AliWW = AliWW + _Table.Tables[0].Rows[i][arr[1].ToString()].ToString();
if (Request[list[j].ToString()] == "Website")
Website = Website + _Table.Tables[0].Rows[i][arr[1].ToString()].ToString();
db.Update_Sql("INSERT INTO Customers([sid],[s_dep],[CompanyName],[Person_in_charge],[Mobile],[Phone],[Fax],[E-mail],[Address],[IMQQ],[AliWW],[Website],[Industry])VALUES(\'" + Request.Cookies["sa"].Value + "\'," + Request.Cookies["dep"].Value + ",\'" + CompanyName + "\',\'" + Person_in_charge + "\',\'" + Mobile + "\',\'" + Phone + "\',\'" + Fax + "\',\'" + E_mail + "\',\'" + Address + "\',\'" + IMQQ + "\',\'" + AliWW + "\',\'" + Website + "\'," + this.DropDownList2.SelectedValue + ")");
CompanyName = ""; Person_in_charge = ""; Mobile = ""; Phone = ""; Fax = ""; E_mail = ""; Address = ""; IMQQ = ""; AliWW = "";
this.Label3.Text = "导入成功!"; 参考技术A 你可以讲EXCEL另存为以Tab隔开形式的TXT文件
然后SQL语句里面有一条是直接将TXT文件导入到指定表格里面的
例如:load data infile 'E:/mysql_LOG/Temporary.txt' into table table_name fields terminated by '\t' lines terminated by '\r\n' IGNORE 1 LINES
fields terminated by '\t' 代表以Tab隔开你的列
lines terminated by '\r\n' 代表以 '\r\n'为一行换行
IGNORE 1 LINES 代表语句跳过文本第一行开始插入
其他的详细的语法你可以百度一下 参考技术B 用 组件 把EXCEL 数据读取出来,然后,循环添加 参考技术C 一、直接导入法
1.启动Access,新建一数据库文件。
2.在“表”选项中,执行“文件→获取外部数据→导入”命令,打开“导入”对话框。
3.按“文件类型”右侧的下拉按钮,选中“Microsoft Excel(.xls)”选项,再定位到需要转换的工作簿文件所在的文件夹,选中相应的工作簿,按下“导入”按钮,进入“导入数据表向导”对话框(图1)。
4.选中需要导入的工作表(如“工程数据”),多次按“下一步”按钮作进一步的设置后,按“完成”按钮。
注意:如果没有特别要求,在上一步的操作中直接按“完成”按钮就行了。
5.此时系统会弹出一个导入完成的对话框(图1的中部),按“确定”按钮。
二、建立链接法
1.启动Access,新建一数据库文件。
2.在“表”选项中,执行“文件→获取外部数据→链接表”命令,打开“链接”对话框。
3.以下操作基本与上述“直接导入法”相似,在此不再赘述,请大家自行操练。
注意:“直接导入法”和“建立链接法”均可以将Excel数据转换到Access中,两者除了在Access中显示的图标不同(图2)外,最大的不同是:前者转换过来的数据与数据源脱离了联系,而后者转换过来的数据会随数据源的变化而自动随时更新。
至此,数据就从Excel中导入到Access中。
使用 Asp.net 将 Excel 导入 DataTable
【中文标题】使用 Asp.net 将 Excel 导入 DataTable【英文标题】:import Excel to DataTable with Asp.net 【发布时间】:2016-04-12 01:47:21 【问题描述】:当我使用excel表导入数据表时,需要同时导入SID、CREATE_DATETIME、MODIFY_DATETIME、CREATOR_SID(actorSId)...
但是在导入之后我只是得到了 excel 数据。那么如何同时导入呢?
我的代码在这里;
private void BindData(string strConn)
OleDbConnection objConn = new OleDbConnection(strConn);
objConn.Open();
// Get the data table containg the schema guid.
DataTable dt = null;
dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
objConn.Close();
//ISystemId SID
if (dt.Rows.Count > 0)
// Bind the sheets to the Grids
foreach (DataRow row in dt.Rows)
DataTable dt_sheet = null;
dt_sheet = getSheetData(strConn, row["TABLE_NAME"].ToString());
private DataTable getSheetData(string strConn, string sheet)
string sid = Convert.ToString(new SystemId());
string Ctime = Convert.ToDateTime(DateTime.Now).ToString("yyyyMMddhhmmss");
string Mtime = Convert.ToDateTime(DateTime.Now).ToString("yyyyMMddhhmmss");
string actorSId = Convert.ToString(WebPage.CurrentSysUserSId);
string query = "select * from [" + sheet + "]";
OleDbConnection objConn;
OleDbDataAdapter oleDA;
DataTable dt = new DataTable();
dt.Columns.Add("SID", typeof(string));
dt.Columns.Add("CREATE_DATETIME", typeof(string));
dt.Columns.Add("MODIFY_DATETIME", typeof(string));
dt.Columns.Add("CREATOR_SID", typeof(string));
dt.Columns.Add("MODIFIER_SID", typeof(string));
dt.Columns.Add("MARK_DELETED", typeof(string));
dt.Columns.Add("ENABLED", typeof(string));
dt.Columns.Add("SORT", typeof(int));
objConn = new OleDbConnection(strConn);
objConn.Open();
oleDA = new OleDbDataAdapter(query, objConn);
oleDA.Fill(dt);
objConn.Close();
oleDA.Dispose();
objConn.Dispose();
return dt;
那么,谁能帮帮我?
【问题讨论】:
【参考方案1】:我已经解决了我的问题。
更改以下代码而不是清晰地工作。
private DataTable getSheetData(string strConn, string sheet)
//string sid = Convert.ToString(new SystemId());
string Ctime = Convert.ToDateTime(DateTime.Now).ToString("yyyyMMddhhmmss");
string Mtime = Convert.ToDateTime(DateTime.Now).ToString("yyyyMMddhhmmss");
string actorSId = Convert.ToString(WebPage.CurrentSysUserSId);
string query = "select * from [" + sheet + "]";
OleDbConnection objConn;
OleDbDataAdapter oleDA;
DataTable dt = new DataTable();
dt.Columns.Add("SID", typeof(string));
dt.Columns.Add("CREATE_DATETIME", typeof(string));
dt.Columns.Add("MODIFY_DATETIME", typeof(string));
dt.Columns.Add("CREATOR_SID", typeof(string));
dt.Columns.Add("MODIFIER_SID", typeof(string));
dt.Columns.Add("MARK_DELETED", typeof(string));
dt.Columns.Add("ENABLED", typeof(string));
dt.Columns.Add("SORT", typeof(int));
objConn = new OleDbConnection(strConn);
objConn.Open();
DataSet dataSet = new DataSet();
oleDA = new OleDbDataAdapter(query, objConn);
oleDA.Fill(dt);
foreach (DataRow dr in dt.Rows) // search whole table
for (int i = 0; i < dt.Rows.Count - 1; i++)
if (dt.Rows.Count > i)
string sid = Convert.ToString(new SystemId());
var row = dt.Rows[i];
row["SID"] = sid;
row["CREATE_DATETIME"] = Ctime;
row["MODIFY_DATETIME"] = Mtime;
row["CREATOR_SID"] = actorSId;
row["MODIFIER_SID"] = 0;
row["MARK_DELETED"] = "N";
row["ENABLED"] = "Y";
row["SORT"] = 1;
objConn.Close();
oleDA.Dispose();
objConn.Dispose();
return dt;
【讨论】:
以上是关于asp如何导入excel内容的主要内容,如果未能解决你的问题,请参考以下文章
使用java进行excel导入,如何获得指定内容的单元格的列号