你可以将EXCEL做为数据源,用数据联接可以直接打开:具体看一下这里:
http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=C673E2CD-3F1E-4919-8CE0-D69B894A0599现在数据在dataset里了,然后打开SQL数据库里一个现在的表,(当然也可以新建),然后根据读出的信息列模式, alert原来的表,然后fill,update,OK!
http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=C673E2CD-3F1E-4919-8CE0-D69B894A0599现在数据在dataset里了,然后打开SQL数据库里一个现在的表,(当然也可以新建),然后根据读出的信息列模式, alert原来的表,然后fill,update,OK!
但是你提供的方法行不通,因为我需要从各个客户端打开网页实现EXCEL上传,不是一个固定的EXCEL档。
附注:其实我主要是想把EXCEL中的数据转入SQL,至于EXCEL档本身上传到哪并不是很关心,我也可以把路径设置成为客户端本地的某个盘,而使EXCEL档不上传到服务器)
public bool ReadExcelToDataSet(string strXlsFileName,string strSheet,System.Data.DataSet ds)
{
try
{
string strConn;
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source="+strXlsFileName+";Extended Properties=Excel 8.0;";
string strSQLCommand="SELECT * FROM ["+strSheet+"]";
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn);
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strSQLCommand, strConn);
myCommand.Fill(ds,strSheet);
return true;
}
catch
{
return false ;
}
}
有点麻烦,呵呵
http://www.21tx.com/school/dotnet/wz/000147219960011.htm将DataGrid输出到Excel文件
http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=BF0A54F9-C7C7-4200-BD9A-802AC1F5DE50在ASP.NET中将数据直接输出成Excel内容
http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=EC5E84EC-68F9-4CD7-9E11-6F5C92027F0B
<%@ Page language="c#" Codebehind="ExcelToDataGrid.aspx.cs" AutoEventWireup="false" Inherits="StudyDotNet.DataGrid.Excel.ExcelToDataGrid" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>风云冰雨工作室</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<hr>
<form id="Form1" method="post" runat="server">
<asp:datagrid id="mygrid" runat="server" AutoGenerateColumns="false" width="100%">
<Columns>
<asp:BoundColumn HeaderText="姓名" ReadOnly="true" DataField="姓名" />
<asp:BoundColumn HeaderText="性别" ReadOnly="true" DataField="性别" />
<asp:BoundColumn HeaderText="Email" ReadOnly="true" DataField="地址" />
</Columns>
</asp:datagrid>
</form>
</body>
</HTML>
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;namespace StudyDotNet.DataGrid.Excel
{
/// <summary>
/// ExcelToDataGrid 的摘要说明。
/// </summary>
public class ExcelToDataGrid : System.Web.UI.Page
{
#region 控件申明
protected System.Web.UI.WebControls.DataGrid mygrid;
#endregion #region Page_Load
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!IsPostBack)
{
DataGridBind();
}
}
#endregion #region 数据绑定
private void DataGridBind()
{
mygrid.DataSource = CreateDataSource();
mygrid.DataBind();
} private DataSet CreateDataSource()
{
string strConn;
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + MapPathSecure(TemplateSourceDirectory) + "\\xls\\contacts.xls;"+
"Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [ContactList$]", strConn);
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet);
return myDataSet;
}
#endregion #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}