我想导入excel内的数据到数据库,不知怎么做?(想了很久,在线=)
把excel内的数据导入到数据库,但同时要判断excel中的数据是否合法(如第一列必须是学号,第二列的数据要根据列名输入到相应的数据库的不同表中)
不知道如何实现?
高手指点
谢谢~~
问题点数:0、回复次数:11Top
1 楼guyking(pc低手)回复于 2005-01-04 19:06:18 得分 0
怎么没人?
顶一下
HELP~~Top
2 楼smallMage(小马哥)回复于 2005-01-04 19:21:42 得分 0
strConn = "provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;data source=" + strSplit + ""
strSql = "Select * From[sheet1$]"
myConn = New OleDbConnection(strConn)
myConn.Open()
myAdaptor = New OleDbDataAdapter(strSql, myConn)
myAdaptor.Fill(ds, "ExcelData")Top
3 楼smallMage(小马哥)回复于 2005-01-04 19:22:24 得分 0
简单的方法是直接导入到数据库中。Top
4 楼shalen520(Love will keep us alive)回复于 2005-01-04 19:27:43 得分 0
数据在哪一列都没有关系啊,用Com和Oledb都可以做Top
5 楼guyking(pc低手)回复于 2005-01-04 19:28:50 得分 0
怎么导?
万一excel表中的数据不对,怎么办?Top
6 楼guyking(pc低手)回复于 2005-01-04 19:35:24 得分 0
我把我的意思再说清楚些:
我想把excel中的内容导入数据库,
excel中的格式固定,
比如说:
学号 姓名 数学 英语
其中,学号和姓名列不变,但后面的学科可以变
可以是上面的数学,英语,也可以是英语,日语
也就是说,我想根据excel中填写的内容的不同来判断输入到哪个表格中
Top
7 楼smallMage(小马哥)回复于 2005-01-04 19:43:51 得分 0
我刚才发的 导出到DATAGRID中。你 在一行一行往数据库里写Top
8 楼arnzn(爱在一瞬)回复于 2005-01-04 20:03:21 得分 0
用的什麽數據庫啊?如果是sql server,在企業管理器有導入到數據庫的向導啊。Top
9 楼alex_jiang(姜文彬)回复于 2005-01-05 11:31:24 得分 0
我做了一个可以将EXECL,文本文件导入数据库的程序!
第一步将EXECL转成DATATABLE
/// <summary>
/// 功能:读取Excel文件,返一个DataTable
/// 日期:2004-10-20
/// </summary>
/// <param name="FileName">文件</param>
/// <param name="Rows">第一列是否为列名,一般为0或1</param>
/// <returns></returns>
[STAThread]
public static DataTable ReadEcxel(string FileName,int Rows)
{
DataTable dt = new DataTable();
// 获取文件绝对路径
string _filePath = FileName;
// 如果Excel中的第一列为栏名,则写成
string sConnectionString = "";
if (Rows == 1)
{
sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+_filePath+";Extended Properties=\"Excel 8.0;HDR=YES\"";
}
else
{
sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+_filePath+";Extended Properties=\"Excel 8.0;HDR=NO\"";
}
OleDbConnection cn = new OleDbConnection();
cn.ConnectionString = sConnectionString;
cn.Open();
string strSQL = "SELECT * FROM [Sheet1$]";
System.Data.OleDb.OleDbDataAdapter da=new System.Data.OleDb.OleDbDataAdapter(strSQL,cn);
da.Fill(dt);
cn.Close();
return dt;
/*
用DataReader方式!
OleDbCommand cmd = cn.CreateCommand();
cmd.CommandText = sSQL;
OleDbDataReader DR = cmd.ExecuteReader();
while(DR.Read())
{
Console.WriteLine(DR[0].ToString());
}
*/
}
第二步,根据数据结构保存. 生成对应的insert into 语句!Top
10 楼alex_jiang(姜文彬)回复于 2005-01-05 11:33:18 得分 0
你可以向我索取.Top
11 楼wanggangi()回复于 2005-01-05 11:48:59 得分 0
用SQLServer 的OpenRowSet 一个语句搞定Top




