乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > ASP.NET 客户端导入EXCEL数据-asp.net导入excel数据,asp excel

ASP.NET 客户端导入EXCEL数据-asp.net导入excel数据,asp excel

作者:乔山办公网日期:

返回目录:excel表格制作


没有直接的方法。
1、要操作Excel,首先需要引用Microsoft Office 11.0 Object Library

2、包含
using System.Runtime.InteropServices; // For COMException
using Excel;

3.用该命名空间的类。操作Excel得到其中行列数据。得到数据后,存入SqlServer就行了。

怎么操作Excel,我就不说了。网上多的是。Copy一下,根zd据自己的实际情况修改。

#region 读取Excel
try
{
DataSet dsExcel1 = new DataSet();
HttpPostedFile PostFile = this.FileUpload1.PostedFile;

string FileName = DateTime.Now.ToShortDateString() + " " + Path.GetFileName(PostFile.FileName);

string FilePath = ConfigurationSettings.AppSettings["ExcelPath"].ToString();
string Path1 = FilePath + FileName;
PostFile.SaveAs(Path1);
PostFile = null;

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path1 + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"";

OleDbConnection SQLCon = new OleDbConnection(strConn);

SQLCon.Open();
DataTable dt = SQLCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string str = dt.Rows[0][2].ToString();

string strSQl = "select * from [" + str + "]";
OleDbDataAdapter Adapter = new OleDbDataAdapter(strSQl, SQLCon);
Adapter.Fill(dsExcel1);
SQLCon.Close();
File.Delete(Path1);

#region LSTBand
List<string> LSTBand = new List<string>();
LSTBand.Add("序号");
LSTBand.Add("档案号");
LSTBand.Add("支部");
LSTBand.Add("姓名");

LSTBand.Add("身份证");

LSTBand.Add("性别");
LSTBand.Add("民族");
LSTBand.Add("籍贯");
LSTBand.Add("出生年月");
LSTBand.Add("入盟时间");
LSTBand.Add("参加工作时间");
LSTBand.Add("学历");
LSTBand.Add("单位(部门)及职务");
LSTBand.Add("职务");
LSTBand.Add("职称");
LSTBand.Add("社会职务");
LSTBand.Add("盟内职务");
LSTBand.Add("曾担任职务");
LSTBand.Add("家庭地址");
LSTBand.Add("单位电话");
LSTBand.Add("家庭电话");
LSTBand.Add("手机(小灵通)");
LSTBand.Add("电子信箱");
LSTBand.Add("退休情况e799bee5baa6e58685e5aeb9338");
LSTBand.Add("参加其他党派");
LSTBand.Add("毕业学校");
LSTBand.Add("学位");
LSTBand.Add("个人简历");
LSTBand.Add("工作业绩");
LSTBand.Add("奖励情况");
LSTBand.Add("个人爱好及特长");

LSTBand.Add("推荐人姓名");
LSTBand.Add("评定时间");
LSTBand.Add("人员性质");
LSTBand.Add("懂何种外语(级别)");
//LSTBand.Add("单位职务(包括曾任)");
LSTBand.Add("家庭成员");
LSTBand.Add("社会关系");
LSTBand.Add("发表学术论文情况");
LSTBand.Add("业务获奖情况");
LSTBand.Add("获荣誉奖情况");
LSTBand.Add("对中国民主同盟组织的认识");
LSTBand.Add("主要成就和社会影响");
//LSTBand.Add("家庭主要成员和社会影响");
LSTBand.Add("家庭主要成员及国内外亲属中知名人士");
LSTBand.Add("党派组织审核意见");
LSTBand.Add("备注");

#endregion

#region 获取Excel表内容到Dataset
for (int i = 0; i < dsExcel1.Tables[0].Columns.Count; i++)
{
string Excelcolumnname = dsExcel1.Tables[0].Rows[0][dsExcel1.Tables[0].Columns[i].ColumnName].ToString();
if (Excelcolumnname != "")
{
dtExcel.Columns.Add(Excelcolumnname);
}
}

for (int ii = 1; ii < dsExcel1.Tables[0].Rows.Count; ii++)
{
DataRow drExcel = dtExcel.NewRow();
for (int i = 0; i < dsExcel1.Tables[0].Columns.Count; i++)
{
if (dsExcel1.Tables[0].Rows[0][dsExcel1.Tables[0].Columns[i].ColumnName].ToString() != "")
{
drExcel[dsExcel1.Tables[0].Rows[0][dsExcel1.Tables[0].Columns[i].ColumnName].ToString()] = dsExcel1.Tables[0].Rows[ii][dsExcel1.Tables[0].Columns[i].ColumnName];
}
}
dtExcel.Rows.Add(drExcel);
}

for (int i = 0; i < dtExcel.Columns.Count; i++)
{
//Response.Write("<script>alert('" + dsExcel.Tables[0].Columns[i].ColumnName + "');</script>");
lstcols.Add(dtExcel.Columns[i].ColumnName);
}

bool ExcelFormat = IsExcel(LSTBand, lstcols);
#endregion

if (ExcelFormat)
{
dsExcel.Tables.Add(dtExcel);
}
else
{
dsExcel = null;
Literal1.Text = "<script>alert('Excel表格式错误');</script>";
return;
}

}
catch (Exception e1)
{
Literal1.Text = "<script>alert('读取Excel表错误,或者" + e1.Message.ToString() + "');</script>";
return;
}
#endregion
你数据库必须有这几张表,或者在导入的时候根据excel的表头去创建拿几张表,读取e799bee5baa6e79fa5e98193e4b893e5b19e336excel的数据insert到表中。/// <summary>
/// 将Excel中的数据通过OLE连接导入DataSet
/// </summary>
/// <param name="filePath"></param>
/// <param name="ds"></param>
/// <returns></returns>
public void ImportExcelToDataSet(string filePath, DataSet ds)
{
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filePath + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";//HDR标识是否有表头,IMEX标识格式是文本
DataTable dt = null;
OleDbConnection conn = new OleDbConnection(strConn);//建立OLE连接
conn.Open();
OleDbDataAdapter odda = null;
try
{
dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);//获得工作表名
int num = dt.Rows.Count;
if (dt != null)
{
string[] sheetName = new string[num];//用来存储工作表名
int i = 0;
foreach (DataRow row in dt.Rows)//循环读取工作表名
{
sheetName[i] = row["TABLE_NAME"].ToString();
i++;
}
for (int j = 0; j < num; j++)
{
string sql="select * from [" + sheetName[j] + "]";
odda = new OleDbDataAdapter(sql, conn);
odda.Fill(ds, sheetName[j]);//获取工作表中的数据
}
}
AddDatasetToSQL(ds,6);
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
}
}

private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
{

//// <summary>
/// 从Excel提取数据--》Dataset
/// </summary>
/// <param name="filename">Excel文件路径名</param>

try
{
DataSet ds=new DataSet();
if (this.openFileDialog1.SafeFileName.Split('.')[1] == "xls")
{
ImportExcelToDataSet(this.openFileDialog1.FileName, ds);
}

//if (this.openFileDialog1.FileName == string.Empty)
//{
// throw new ArgumentNullException("Excel文件上传失败!");
//}

//string oleDBConnString = String.Empty;
//oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;";
//oleDBConnString += "Data Source=";
//oleDBConnString += this.openFileDialog1.FileName;
//oleDBConnString += ";Extended Properties=Excel 8.0;";
//OleDbConnection oleDBConn = null;
//OleDbDataAdapter oleAdMaster = null;
//DataTable m_tableName=new DataTable();
//DataSet ds=new DataSet();

//oleDBConn = new OleDbConnection(oleDBConnString);
//oleDBConn.Open();
//m_tableName=oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);

//if (m_tableName != null && m_tableName.Rows.Count > 0)
//{

// m_tableName.TableName = this.openFileDialog1.SafeFileName.Split('.')[0];

//}
//string sqlMaster;
//sqlMaster = "select * from Sheet1";
//oleAdMaster=new OleDbDataAdapter(sqlMaster,oleDBConn);
//oleAdMaster.Fill(ds,"m_tableName");
//oleAdMaster.Dispose();
//oleDBConn.Close();
//oleDBConn.Dispose();

//AddDatasetToSQL(ds,6);
}
catch(Exception ex)
{
throw ex;
}
}
/// <summary>
/// 将Dataset的数据导入数据库
/// </summary>
/// <param name="pds">数据集</param>
/// <param name="Cols">数据集列数</param>
/// <returns></returns>
private bool AddDatasetToSQL(DataSet pds, int Cols)
{
int ic, ir;
ic = pds.Tables[0].Columns.Count;
if (pds.Tables[0].Columns.Count < Cols)
{
throw new Exception("导入Excel格式错误!Excel只有" + ic.ToString() + "列");
}
ir = pds.Tables[0].Rows.Count;
if (pds != null && pds.Tables[0].Rows.Count > 0)
{

for (int i = 0; i < pds.Tables[i].Rows.Count; i++)
{
Add(
pds.Tables[0].Rows[i][1].ToString(), pds.Tables[0].Rows[i][2].ToString(),
pds.Tables[0].Rows[i][3].ToString(), pds.Tables[0].Rows[i][4].ToString(),
pds.Tables[0].Rows[i][5].ToString()
);

}

}
else
{
throw new Exception("导入数据为空!");
}
return true;
}
至于怎么插入数据 - - 你自己写吧

真不知道 怎么回答 求分!!!

相关阅读

  • -asp net excel,asp excel

  • 乔山办公网excel表格制作
  • using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Data;using System.IO;using System.Text;using Syste
关键词不能为空

ppt怎么做_excel表格制作_office365_word文档_365办公网