asp.net(c#)如何实现sql数据直接导入excel程序
解决方案 »
- asp.net c#语言 求一个选择类型多用户登陆源代码
- showModalDialog被弹出窗口阻止程序挡住了,有替代方法吗?
- 绑定问题??
- asp.net如何显示一个不断更新的数据源
- .net弹出对话框后,CSS样式全乱
- iframe 面页用JS传值问题
- 如何从源代码区分开发时用的是asp.net2.0还是asp.net1.1?
- 如何动态加载Web组件?我是指运行时加载,而非页面加载的时候加载 .
- 我的自定义控件中定义的事件为何总是出现未将对象引用到实例?【等待中。。◎◎】
- DataGrid问题,帮忙分析,谢谢!!!
- sql server2000和asp.net结合有什么好处?
- DataSet中对多张DataTable表进行操作!!!!!!!!!!!!!!!!!!!
2:如果你想实现最快速的话,用BCP命令.
这样最好,几十万只要几秒!
BCP命令的导入,可以看我的blog
http://www.cnblogs.com/mqcan/archive/2008/03/07/1095361.html
google撒.网上很多...
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO; /// <summary>
/// Excel的摘要说明
/// </summary>
public class Excel:System.Web.UI.Page
{
public Excel()
{
//
// TODO: 在此处添加构造函数逻辑
//
} /// <summary>
/// Grid导出excel
/// </summary>
/// <param name="GridView">GridView </param>
/// <param name="System.Web.UI.Page page">page </param>
/// <returns> </returns>
public static void GridToExcel(GridView gv,System.Web.UI.Page page)
{
//导出excel
page.Response.Clear();
page.Response.Buffer = true;
page.Response.ContentType = "application/vnd.ms-excel";
page.Response.Charset = "";
page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
page.EnableViewState = false;
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gv.RenderControl(htw);
page.Response.Write(sw.ToString());
page.Response.End();
} public override void VerifyRenderingInServerForm(Control control)
{ }
} 2.在含有GV的页面调用,比如将事件写在btOutExcel上,以gvZC为例,
添加引用: using System.IO; #region 导出Excel需要的东东(这个必需加上,否则会出错,空着就行)
public override void VerifyRenderingInServerForm(Control control)
{ }
#endregion #region 导出Excel文件按钮事件
protected void btOutExcel_Click(object sender, EventArgs e)
{
gvZC.AllowPaging = false;//如果您gridview分了页,请加此代码
gvZC.Columns[0].Visible = false;//如果您的gridview有按钮列或不想显示的列,请隐藏列。
//导出excel
ZiChanBSL b = new ZiChanBSL();
gvZC.DataSource = b.getZiChan();
gvZC.DataBind(); //初始初自定义的方法,调用您的绑定gridview的方法重新绑定一次gridview Excel.GridToExcel(gvZC, this.Page);
}
#endregion
应该绝对能用了,别望了给分
--------------------------------------------------
1.先读取数据到dataset,然后转到excel
2.sql工具可以导入,bcp命令
EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'
/*********** 导入Excel
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions/*动态文件名
declare @fn varchar(20),@s varchar(1000)
set @fn = 'c:\test.xls'
set @s ='''Microsoft.Jet.OLEDB.4.0'',
''Data Source="'+@fn+'";User ID=Admin;Password=;Extended properties=Excel 5.0'''
set @s = 'SELECT * FROM OpenDataSource ('+@s+')...sheet1$'
exec(@s)
*/SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions