从excel导入数据到数据库
请问谁有这方面的源代码,请发给我一份,谢谢。。。。
公司项目中需要,以前没有做过。。。。。急。。在线等。。。。
最好是完整的。。。。谢谢。。。谢谢
问题点数:0、回复次数:5Top
1 楼ziyan0218()回复于 2005-04-01 09:05:15 得分 0
建立Connection对象的数据源连接字符串:
"Provider=Microsoft.Jet.Oledb.4.0;Data Source=Excel 文件物理路径 + ";Extended Properties=Excel 8.0";
DataAdapter对象中的SQL语句应为:"Select 字段列表 From [工作表名$]"
具体示例:
<%@ Import NameSpace="System.Data"%>
<%@ Import NameSpace="System.Data.OleDb"%>
<script Language="C#" runat="server">
void Page_Load(Object sender,EventArgs e)
{
string strConn = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Server.MapPath("Book1.xls") + ";Extended Properties=Excel 8.0";
OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter adp = new OleDbDataAdapter("Select * from [Sheet1$]",conn);
DataSet ds = new DataSet();
adp.Fill(ds,"Book1");
ExlDataGrid.DataSource = ds.Tables["Book1"].DefaultView;
ExlDataGrid.DataBind();
}
</script>
<html>
<body>
<h4 align="center">读取Excel文件</h4>
<asp:DataGrid id="ExlDataGrid" width="100%" HeaderStyle-BackColor="#999999" ForeColor="#333333" runat="server"></asp:DataGrid>
</body>
</html>
Top
2 楼litp(天道酬勤)回复于 2005-04-01 09:10:21 得分 0
本文介绍如何使用 Visual C# .NET 通过 ASP.NET (.aspx) 页显示 Excel 工作表中的数据。
返回页首
创建示例 Excel 工作表
1. 启动 Microsoft Excel,然后创建一个新的工作表。
2. 将以下信息添加到新工作表中以创建一个简单的 Excel 数据库:
A B
1 FirstName LastName
2 Scott Bishop
3 Katie Jordan
注意:虽然在本示例中数据是从单元格 A1 开始的,但是您可以将此数据添加到工作表中的任何相邻接的单元格。
3. 突出显示此数据所在的行和列。
4. 在插入菜单上,指向名称,然后单击定义。
5. 在“当前工作簿中的名称”文本框中,键入 myRange1,然后单击确定。
6. 在文件菜单上,单击保存。在“保存位置”列表中,选择 Web 服务器的根目录(通常为 C:\InetPub\Wwwroot\)。在“文件名”文本框中,键入 ExcelData.xls。单击确定。
7. 在文件菜单上,单击退出。
返回页首
使用 Visual C# .NET 创建 ASP.NET 示例
此代码示例说明如何查询和显示 Excel 工作表中的信息。以下代码使用您在上一节中创建的工作表。 1. 打开 Microsoft Visual Studio .NET。此时将显示 Visual Studio .NET 集成开发环境 (IDE)。
2. 在文件菜单上,指向新建,然后单击项目。
3. 在新建项目对话框的项目类型下面,单击 Visual C# 项目。在模板下面,单击 ASP.NET Web 应用程序。
4. 在新建项目对话框中,找到名称和位置文本框。注意,名称文本框不可用(它显示为灰色)。位置文本框包含以下文本(或类似的文本):
http://localhost/WebApplication1
将位置文本框中的文本替换为 http://localhost/ExcelCSTest,然后单击确定。此时将创建一个新项目,其中包括一个名为 WebForm1.aspx 的 Web 窗体。
5. 在 Visual Studio .NET IDE 中,找到“解决方案资源管理器”窗口。如果找不到该窗口,请单击视图菜单上的解决方案资源管理器。
6. 在解决方案资源管理器中,右键单击 WebForm1.aspx,然后单击视图设计器以显示用于设计页面外观的设计器。可以使用该设计器,添加控件并处理页面的外观。
7. 查找工具箱。根据您的“IDE 选项”设置,工具箱可能以窗口或按钮的形式出现(通常出现在 IDE 的左侧)。如果找不到工具箱,请单击视图菜单上的工具箱。
如果工具箱以按钮的形式出现,将指针移动到该按钮上以显示工具箱的内容。
8. 当 Web 窗体的设计器视图处于活动状态时,工具箱被划分为几部分,其中包括 Web 窗体、组件、HTML 和其他部分。单击 Web 窗体部分。
9. 在工具箱的 Web 窗体部分,单击 DataGrid,然后将其拖到 WebForm1 的设计器上。
10. 右键单击 WebForm1.aspx,然后单击查看代码以显示代码隐藏页的源代码。
11. 将下面的语句添加到代码隐藏页顶部的命名空间部分之上:
using System.Data.OleDb;
using System.Data;
12. 突出显示以下代码,右键单击该代码,然后单击复制。在 WebForm1.aspx.cs 中,将这些代码复制到 Page_Load 事件中:
// Create connection string variable. Modify the "Data Source"
// parameter as appropriate for your environment.
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
"Extended Properties=Excel 8.0;";
// Create connection object by using the preceding connection string.
OleDbConnection objConn = new OleDbConnection(sConnectionString);
// Open connection with the database.
objConn.Open();
// The code to follow uses a SQL SELECT command to display the data from the worksheet.
// Create new OleDbCommand to return data from worksheet.
OleDbCommand objCmdSelect =new OleDbCommand("SELECT * FROM myRange1", objConn);
// Create new OleDbDataAdapter that is used to build a DataSet
// based on the preceding SQL SELECT statement.
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
// Pass the Select command to the adapter.
objAdapter1.SelectCommand = objCmdSelect;
// Create new DataSet to hold information from the worksheet.
DataSet objDataset1 = new DataSet();
// Fill the DataSet with the information from the worksheet.
objAdapter1.Fill(objDataset1, "XLData");
// Bind data to DataGrid control.
DataGrid1.DataSource = objDataset1.Tables[0].DefaultView;
DataGrid1.DataBind();
// Clean up objects.
objConn.Close();
13. 在文件菜单中,单击全部保存来保存项目文件。
14. 在生成菜单上,单击生成以生成项目。这就准备好了代码隐藏页中的代码,使之能够执行了。
15. 在解决方案资源管理器中,右键单击 WebForm1.aspx,然后单击在浏览器中查看以运行代码。
返回页首
其他代码说明
本文中的示例代码使用 Microsoft Jet OLE DB 提供程序访问 Excel 工作表。此代码使用以下连接字符串连接到工作表:
// Create connection string variable. Modify the "Data Source"
// parameter as appropriate for your environment.
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
"Extended Properties=Excel 8.0;";
正如注释中所描述的那样,必须修改特定 Excel 工作表的路径信息。此外,还必须设置 Extended Properties 参数的值,以便正确地连接到文件。
注意,连接字符串使用 Server.MapPath 函数。此函数使用文件相对于 Microsoft Internet 信息服务 (IIS) 的路径,并返回该文件的硬盘路径。例如,在创建示例 Excel 工作表 部分中,您在 Web 根目录中创建了 ExcelData.xls,该目录通常位于 C:\Inetpub\Wwwroot。这还会在 Wwwroot 文件夹中创建名为 ExcelCSTest 的子文件夹,并在 ExcelCSTest 文件夹中创建名为 WebForm1.aspx 的文件。
在此示例中,硬盘上的文件路径如下:
C 驱动器
- Inetpub
- Wwwroot(其中包含 ExcelData.xls)
- ExcelCSTest(包含 WebForm1.aspx)
文件的 IIS 路径如下所示:
Web 根目录(其中包含 ExcelData.xls)
- ExcelCSTest(包含 WebForm1.aspx)
在本例中,WebForm1.aspx 页到 ExcelData.xls 文件的相对 路径为“../ExcelData.xls”。“../”字符通知 IIS 转到上一级文件夹。因此,代码
Server.MapPath("../ExcelData.xls")
返回以下字符串:
C:\Inetpub\Wwwroot\ExcelData.xls
您无需使用 Server.MapPath。您也可以将此信息硬编码为一个特定的路径,或使用任何方法提供该 Excel 文件在硬盘上的位置。
Top
3 楼litp(天道酬勤)回复于 2005-04-01 09:11:40 得分 0
给你一个我昨天改别人的一个导excel入sql数据库的我正用的程序,是button1按钮一点就开始导入,我导的是excel是第二三colum..如下:
private void Button1_Click(object sender, System.EventArgs e)
{
string mystring="Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = 'D:/ExportToExcel/excel/test.xls';Extended Properties=Excel 8.0";
OleDbConnection cnnxls = new OleDbConnection (mystring);
OleDbDataAdapter myDa =new OleDbDataAdapter("select * from [Sheet1$]",cnnxls);
DataSet myDs =new DataSet();
myDa.Fill(myDs);
if(myDs.Tables[0].Rows.Count > 0)
{
string strSql = "";
string CnnString="Provider=SQLOLEDB;database=testnews;server=(local);uid=sa;pwd=";
OleDbConnection conn =new OleDbConnection(CnnString);
conn.Open ();
OleDbCommand myCmd =null;
for(int i=0; i<myDs.Tables[0].Rows.Count; i++)
{
strSql="insert into news(title,body) values ('";
strSql += myDs.Tables[0].Rows[i].ItemArray[1].ToString() + "', '";
strSql += myDs.Tables[0].Rows[i].ItemArray[2].ToString() + "')";
try
{
myCmd=new OleDbCommand(strSql,conn);
myCmd.ExecuteNonQuery();
Label8.Text = "<script language=javascript>alert('数据导入成功.');</script>";
}
catch
{
Label8.Text = "<script language=javascript>alert('数据导入失败.');</script>";
}
}
conn.Close();
}
}
}
Top
4 楼lufly2000(凌绝顶)回复于 2005-04-19 00:51:10 得分 0
其实思想就是将Excel读入DataTable,然后在DataTable中读取需要的行/列数据,插入到数据库。Top
5 楼liulif(学习三个DB)回复于 2005-04-21 14:55:27 得分 0
但是现实中读取的excel表会在任何路径不可能在固定的地方,而sheet的名称也不会是固定的,请各位给出解决方法Top




