华域联盟 .Net ASP.NET利用MD.DLL转EXCEL具体实现

ASP.NET利用MD.DLL转EXCEL具体实现

前提

引入MD.dll 文件;

下载地址:https://www.cnhackhy.com/dll/MD.dll.html

1、建立无CS文件的DownExcel.aspx 文件

复制代码 代码如下:

<%@ Page Language="C#" %>

<%@ import Namespace="System.Data" %>

<%@ import Namespace="System.Data.SqlClient" %>

<%@ import Namespace="MD" %>

<script runat="server">

string tableName = "";

string procName ="";

private string selectSql( string selstr )

{

string sp =selstr + " WHERE";

int iwhere;

iwhere=sp.IndexOf("WHERE");

iwhere=iwhere+7;

string sall = Server.UrlDecode(Request.QueryString.ToString());

string[] sparams;

sparams=sall.Split('&');

int i=0;

if (sparams.Length>1){

while (i<sparams.Length){

if (!(sparams[i].StartsWith("table"))){

if ((sparams[i].StartsWith("str") )){

sp=sp+" and " + sparams[i].Replace("=","='").Substring(3) + "'";

}

if ((sparams[i].StartsWith("num") ))

{

sp=sp+" and " + sparams[i].Substring(3) + "";

}

}

i++;

}

}

if (sp.IndexOf("and") >0 ){

sp = (sp.Substring(0,sp.IndexOf("and")) + sp.Substring(sp.IndexOf("and")+3));

}

//sp=sp.Replace("=","='");

if (sp.Length<iwhere) {

sp=sp.Substring(0,(iwhere-8));

}

return sp;

}

private string selectProc( string selstr )

{

string sp =selstr + " ";

string sall = Server.UrlDecode(Request.QueryString.ToString());

//Server.UrlDecode(Request.QueryString.ToString());

string[] sparams;

sparams=sall.Split('&');

int i=0;

if (sparams.Length>1)

{

while (i<sparams.Length)

{

if (!(sparams[i].StartsWith("procedure")))

{

if ((sparams[i].StartsWith("str") ))

{

sp=sp + "'" + sparams[i].Substring( sparams[i].IndexOf("=")+1) + "',";

}

if ((sparams[i].StartsWith("num") ))

{

sp=sp + sparams[i].Substring( sparams[i].IndexOf("=")+1) + ",";

}

}

i++;

}

}

if (sp.EndsWith(",")){

sp=sp.Substring(0, (sp.Length -1));

}

return sp;

}

private void Page_Load(object sender, System.EventArgs e)

{

// setup connection

//Response.Write(selectSql("start test!"));

string conn = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; /// System.Configuration.ConfigurationSettings.AppSettings["connectionString"];

if (Request.QueryString["table"]== null && Request.QueryString["procedure"]==null)

{

this.Response.Write("not supply correct parameters!");

this.Response.End();

return;

}

DataSet ds = new DataSet();

ds.Locale = new System.Globalization.CultureInfo("zh-CN");

//OleDbDataAdapter adapter=new OleDbDataAdapter();

if (!(Request.QueryString["table"]== null ) )

{

/*string test1=selectSql(("SELECT * from " + Request.QueryString["table"]));

this.Response.Write(test1);

this.Response.End();

return;*/

tableName=Request.QueryString["table"];

MD.SqlHelper.FillDataset(conn,System.Data.CommandType.Text ,selectSql(("SELECT * from " + tableName)),ds,new string[] {"down"});

}

if (!(Request.QueryString["procedure"]== null ) )

{

/*string test2=selectProc(("exec " + Request.QueryString["procedure"]));

this.Response.Write(test2);

this.Response.End();

return;*/

procName=Request.QueryString["procedure"];

MD.SqlHelper.FillDataset(conn,System.Data.CommandType.Text ,selectProc(("exec " + procName)),ds,new string[] {"down"});

}

if (ds.Tables[0].Rows.Count==0){

this.Response.Write("条件不符,查询没有任何资料!");

return;

}

string downRes="";

if (procName=="")

{

downRes=tableName;

}

else

{

downRes=procName;

}

//OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * from " + tableName, conn);

//Response.Write(selectSql("SELECT * from " + tableName));

//return;

// open the Database and get the results

this.DataGridDown.DataSource=ds;

this.DataGridDown.DataBind();

this.Response.Clear();

this.Response.Buffer =true;

this.Response.Charset="utf-8";

this.Response.ContentType="application/ms-excel";

this.Response.AppendHeader("content-Disposition","attachment;filename="+downRes+".xls");

this.Response.ContentEncoding =System.Text.Encoding.GetEncoding("utf-8");

//Response.ContentEncoding = System.Text.Encoding.utf-8;

this.EnableViewState =false;

System.IO.StringWriter OStringWriter = new System.IO.StringWriter();

System.Web.UI.HtmlTextWriter OHtmlTextWriter = new System.Web.UI.HtmlTextWriter(OStringWriter);

this.DataGridDown.RenderControl(OHtmlTextWriter);

this.Response.Write(OStringWriter.ToString());

this.Response.End();

// if the action is update, well, we update our DB

}

</script>

<html>

<head>

<meta http-equiv="content-type" content="application/x-excel; charset=UTF-8"/>

<!-- <meta http-equiv="Content-Type" content="application/x-msexcel; charset=iso-8859-1" /> -->

</head>

<body>

<form runat="server">

<asp:DataGrid id="DataGridDown" style="Z-INDEX: 100; POSITION: absolute" runat="server" Height="373px" Width="674px" >

</asp:DataGrid>

<!-- Insert content here -->

</form>

</body>

</html>

2、调用方法

http://localhost:13042/report/downexcel.aspx?procedure=P_PP_SPC_FindCount&strWorkCenterNum=0&strStatus=全部&strPartno=

注解

P_PP_SPC_FindCoun:存储过程

WorkcenterNum:参数

在每个参数前都要加上‘Str'表示该参数是字符串型

所以参数要写成StrWorkcenterNum

您可能感兴趣的文章:

  • ASP.NET实现读取Excel内容并在Web上显示
  • ASP.NET中上传并读取Excel文件数据示例
  • asp.net导出excel的简单方法实例
  • asp.net读取excel文件的三种方法示例
  • asp.net导出Excel乱码的原因及解决方法
  • asp.net读取excel中的数据并绑定在gridview
  • asp.net使用npoi读取excel模板并导出下载详解
  • asp.net导出Excel类库代码分享
  • Asp.Net用OWC操作Excel的实例代码
  • Asp.net中DataTable导出到Excel的方法介绍
  • ASP.NET(C#)读取Excel的文件内容
  • Asp.Net使用Npoi导入导出Excel的方法

本文由 华域联盟 原创撰写:华域联盟 » ASP.NET利用MD.DLL转EXCEL具体实现

转载请保留出处和原文链接:https://www.cnhackhy.com/50470.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部