发布网友 发布时间:2022-04-20 07:30
共4个回答
热心网友 时间:2022-04-09 05:45
在日常的项目中,Excel,Word,txt等格式的数据导入到数据库中是很常见
这里将分为.net导入Sql Server,Oracle数据库和WinForm导入Sql Server,Oracle数据库。
实现的基本思想:
1,先使用FileUpload控件fuload将Excel文件上传到服务器上得某一个文件夹。
2,使用OleDb将已经上传到服务器上的Excel文件读出来,这里将Excel文件当做一个数据库来读。在联系数据库语句中,Data Source就是该文件在服务器上得物理路径
3,将第二步中读出的数据以DataTable对象返回。
4,遍历DataTable对象,然后到Sql Server数据库中查询,是否存在该条数据。如果存在,可以做更新,或者不做处理;如果不存在,则插入数据。
注意:在遍历DataTable的时候,可是使用dt.Rows[i]["Name"].ToString();Name为Name列的表头,所以Excel中列的顺序就无关紧要了。当然,前提是你知道Excel里列中各表头的名字。如果Excel中列的顺序固定,即可按下面代码中的方式进行。
添加的引用:
using System;
热心网友 时间:2022-04-09 07:03
Excel.Application app = new Excel.Application();
app.Visible = true;
try
{
object obj = System.Reflection.Missing.Value;
Excel.Workbooks wb = app.Workbooks;
Excel._Workbook iwk = wb.Add(obj);
Excel._Worksheet sheet = (Excel._Worksheet)(iwk.ActiveSheet);
app.Caption = "Excle的标题";
//添加列
for (int i = 0; i < this.dataGridView的控件名.Columns.Count; i++)
{
sheet.Cells[1, i + 1] = this.dataGridView的控件名.Columns[i].HeaderText;
}
//添加行
for (int i = 0; i < this.dataGridView的控件名.Rows.Count; i++)
{
for (int j = 0; j < dataGridView的控件名.Columns.Count; j++)
{
sheet.Cells[i + 2, j + 1] = this.dataGridView的控件名.Rows[i].Cells[j].Value.ToString();
}
}
}
catch (Exception ex)
{
throw ex;
}
}
用法:先把Excle.dll 复制在你的项目的bin\Debug文件下:在右击工具箱->选择项(I)... -> 显示"选择工具箱项" -> COM组件 -> 选择Excle就可以了
热心网友 时间:2022-04-09 08:38
一.数据库向导本来就可以这样导入,在Excel建的字段,必须在table表中也得有字段.然后在SQL右键点击table表中的导入数据.选择Excel数据类型,就可以了
二:
protected void Button1_Click(object sender, System.EventArgs e)
{
string XLS_Path="";
string XLS_Name = MakeFileName();
string fileExtName = "";
if(File1.PostedFile.ContentLength >0)
{
try
{
fileExtName = File1.PostedFile.FileName.Substring(File1.PostedFile.FileName.LastIndexOf("."));
if(fileExtName!=".xls"||fileExtName.Length<1)
{
Response.Write( "<script language=javascript>alert('数据导入失败.可能是文件格式或路径不正确!!!');</script>");
return;
}
File1.PostedFile.SaveAs(Server.MapPath("../uploadexcel/")+XLS_Name+fileExtName);
XLS_Path =Server.MapPath("../uploadexcel/")+ XLS_Name+fileExtName;
}
catch(Exception ex)
{
Response.Write(ex.ToString());
}
}
else
{
Response.Write( "<script language=javascript>alert('请选择文件后再上传!!!');</script>");
return;
}
string ConStr=System.Configuration.ConfigurationManager.AppSettings["ConnString"];
SqlConnection Conn=new SqlConnection(ConStr);
string mystring="Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '"+XLS_Path+"'"+";Extended Properties=Excel 8.0";
OleDbConnection cnnxls = new OleDbConnection (mystring);
OleDbDataAdapter myDa =new OleDbDataAdapter("select * from [Sheet1$]",cnnxls);
DataSet myDs =new DataSet();
try
{
myDa.Fill(myDs);
}
catch
{
Response.Write( "<script language=javascript>alert('数据导入失败,请检查!!');</script>");
return;
}
if(myDs.Tables[0].Rows.Count<=0)
{
Response.Write( "<script language=javascript>alert('文件中可能没有数据,请检查后重新导入!');</script>");
return;
}
int []zjid=new int[myDs.Tables[0].Rows.Count];
string strSql = "";
string CnnString="Provider=SQLOLEDB;"+ConStr;
OleDbConnection conn =new OleDbConnection(CnnString);
OleDbCommand myCmd =null;
热心网友 时间:2022-04-09 10:29
整个数据库?
只是某个表而已吧。