一:这种方法是把 DataSet的DataTable里面的数据拼接成html的<table></table>形式输出。

  缺点:(1)这是一种伪Excel格式,用Excel打开的时候会提示 "格式与文件扩展名格式不一致" 每次都要手动确定打开,烦

              (2)这样一个一个的循环,效率低

     优点:直接从浏览器输出,用户可以选择保存路径

    public string GetExportString(DataSet ds)
    {
        StringBuilder data = new StringBuilder();//因为循环很多,用 StringBuilder速度会快很多
        //data = ds.DataSetName + "\n";

        foreach (DataTable tb in ds.Tables)//多个表
        {
            //data += tb.TableName + "\n";
            data.Append("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">");
            //写出列名
            data.Append("<tr style=\"font-weight: bold; white-space: nowrap;\">");
            foreach (DataColumn column in tb.Columns)
            {
				data.Append("<td>");
				data.Append(column.ColumnName);
				data.Append("</td>");
            }
            data.Append("</tr>");

            //写出数据
            foreach (DataRow row in tb.Rows)
            {
                data.Append("<tr>");
                foreach (DataColumn column in tb.Columns)
                {
                    //if (column.ColumnName.Equals("证件编号") || column.ColumnName.Equals("报名编号"))
                    //    data.Append("<td style=\"vnd.ms-excel.numberformat:@\">" + row[column].ToString() + "</td>");
                    //else
                     data.Append("<td>");
					 data.Append(row[column].ToString());
					 data.Append("</td>");
                }
                data.Append("</tr>");
            }
            data.Append("</table>");
        }
        return data.ToString();
    }
	
    public void ExportDsToXls(Page page, string fileName, DataSet ds)
    {
        page.Response.Clear();
        page.Response.Buffer = true;
        page.Response.Charset = "GB2312";
        //page.Response.Charset = "UTF-8";
     //如果输出中文名乱码的话,可以这样编码 文件名 HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName + System.DateTime.Now.ToString("_yyMMdd_hhmm") + ".xls"); page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文 page.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 page.EnableViewState = false; page.Response.Write(GetExportString(ds)); page.Response.End(); } //style="vnd.ms-excel.numberformat:@" 可以去除自动科学计数法的困扰 //输出为Table,能够最大限度的减少字段中数据对生成的文件格式的影响,在这里我没有处理数据中含有HTML标签的情况 在页面后台中,这样使用就可以了:

 二:用到 Microsoft.Office.Interop.Excel dll,在服务器输出,输出的Excel在服务器,(如果是b/s架构的话还要想着怎么把这个导出的文件拿回来),而且如果出现异常或者中断的话,在服务器上面有很多excel的进程需要手动去关闭,要不过不了多久,服务器就挂掉了,所以这个方法比较适合用在WinForm的开发,不适合用在web的。

        public void DataTabletoExcel(System.Data.DataTable tmpDataTable, string strFileName)
        {

            if (tmpDataTable == null)

                return;

            int rowNum = tmpDataTable.Rows.Count;

            int columnNum = tmpDataTable.Columns.Count;

            int rowIndex = 1;

            int columnIndex = 0;



            Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();

            xlApp.DefaultFilePath = "";

            xlApp.DisplayAlerts = true;

            xlApp.SheetsInNewWorkbook = 1;

            Microsoft.Office.Interop.Excel.Workbook xlBook = xlApp.Workbooks.Add(true);



            //将DataTable的列名导入Excel表第一行

            foreach (DataColumn dc in tmpDataTable.Columns)
            {

                columnIndex++;

                xlApp.Cells[rowIndex, columnIndex] = dc.ColumnName;

            }



            //将DataTable中的数据导入Excel中

            for (int i = 0; i < rowNum; i++)
            {

                rowIndex++;

                columnIndex = 0;

                for (int j = 0; j < columnNum; j++)
                {

                    columnIndex++;

                    xlApp.Cells[rowIndex, columnIndex] = tmpDataTable.Rows[i][j].ToString();

                }

            }

            //xlBook.SaveCopyAs(HttpUtility.UrlDecode(strFileName, System.Text.Encoding.UTF8));

            xlBook.SaveCopyAs(strFileName);

        }

 

posted @ 2012-04-10 15:13 jiekk Views(390) Comments(2) Edit

最近在学习 python  有些基本配置的问题,经试验,可行,摘录下来

1、下载安装 Python
python-2.7.2.msi  
http://www.python.org/download/
如下载 Python 2.7.2,安装目录为 C:\Python27

2、添加环境变量
path = C:\Python27
此步骤可实现在命令行下,不用进入 Python 目录即可执行 python.exe

3、下载 setuptools

注意对应 Python 的版本,完成后运行 exe 即可完成安装

setuptools-0.6c11.win32-py2.7.exe
http://pypi.python.org/pypi/pip

4、下载 pip
pip-1.0.2.tar.gz
http://pypi.python.org/pypi/pip

5、安装 pip
    5.1 解压 pip-1.0.2.tar.gz
    5.2 运行CMD,进入命令行
    5.3 用CD命令进入 pip 解压目录
    5.4 输入 "python setup.py install"
    5.5 添加环境变量 path = C:\Python27\Scripts

6、安装distribute, nose, virtualenv
进入命令行,输入 "pip install package",package为安装包名称。
程序会自动下载相应的安装包,并进行安装,这步跟 Linux 一样。

 

从这文章摘录过来的:http://blog.csdn.net/lab2013/article/details/6876967

posted @ 2012-03-29 16:33 jiekk Views(336) Comments(1) Edit

一、上传文件大小限制修改:
1 、运行iisreset –stop,关闭 iis admin service 服务。
2、 找到 windows\system32\inesrv\ 下的 metabase.xml 文件。
3、 用纯文本方式打开,找到 ASPMaxRequestEntityAllowed 把它修改为需要的值(比如10M即:10240000),默认为:204800,即:200K。
4 、存盘,然后运行iisreset重启 iis admin service 服务。

二、下载文件大小限制修改:
1、运行iisreset –stop,关闭 iis admin service 服务。
2、找到 windows\system32\inesrv\ 下的 metabase.xml 文件。
3、用纯文本方式打开,找到 AspBufferingLimit 把它修改为需要的值(比如20M即:20480000),默认为4M。
4、存盘,然后运行iisreset重启 iis admin service 服务。

win2008+IIS7:
 打开IIS管理器
双击“IIS”中的“ASP”
打开“配置 ASP 应该程序的属性”
展开“限制属性”;
 
修改“最大请求实体主体限制”的值,默认值为200000(即不到200KB);
 
把它修改为你想修改的大小,如:52000000(50MB)。
 
修改完成点击“应用”

posted @ 2012-02-06 15:54 jiekk Views(252) Comments(0) Edit

异步请求核心js代码

function callServer(type, url, isAsync, user, passWord) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
//Open方法中包含了5个参数,前三个是必要的,后两个是可选的(在服务器需要进行身份验证时提供)
//数据传送方式即GET或POST,服务网页的URL,是否异步请求(缺省为True,即异步执行。False,为同步执行),用户名(可省略),用户口令(可省略)
xmlHttp.Open(type, url, isAsync, user, passWord);
//如果Open方法定义为POST,可以定义表单方式上传
if (type.toUpperCase == "POST") {
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//xmlhttp.Send(strParamString);
}
if (isAsync) {//异步方法
xmlHttp.onreadystatechange = update;
xmlHttp.send();
}
else {//同步方法
xmlHttp.send();
if (xmlHttp.status == 200) {
//responseText:将返回消息作为文本字符串;
//responseBody:将返回消息作为HTML文档内容;
//responseXML:将返回消息视为XML文档,在服务器响应消息中含有XML数据时使用;
//responseStream:将返回消息视为Stream对象
var ret=xmlHttp.responseText;//这是同步请求回来的数据
}
}
}
//异步回调函数
function update() {
if (xmlHttp.readyState == 4) {
var response = xmlHttp.responseText;//这就是异步请求回来的数据
}
}

后台核心代码(建一个专门处理请求的aspx页面):

    protected void Page_Load(object sender, EventArgs e)
{
string ret = "This is Microsoft.XMLHTTP";//这里就是你所要组织返回来的数据
Response.Write(ret);
Response.End();
}


前台调用代码:

var url = "WebServer.aspx";//可以附带参数,然后在后台获取参数
callServer("post", url, true, "", "");



posted @ 2012-01-13 15:32 jiekk Views(164) Comments(0) Edit

例子,纯代码,仅供参考

        /// <summary>
/// 邦定根节点
/// </summary>
public void BindTreeView(DataTable dt)
{
DataTable aldt = GetTreeList("").Tables[0];
//菜单状态
tv.Nodes.Clear(); // 清空树
if (Request.QueryString["Type"] == "User")
{
TreeNode rootnode = new TreeNode();
rootnode.Text = "--所有部门--";
rootnode.Value = "";
rootnode.ImageUrl = "../img/0_Person.gif";
rootnode.NavigateUrl = "../User/AdminUser.aspx";
rootnode.Target = "mainFrame";
tv.Nodes.Add(rootnode);
}
foreach (DataRow r in dt.Rows)
{
string nodeid = r["dept_code"].ToString();
string text = r["dept_name"].ToString();
this.tv.Font.Name = "宋体";
this.tv.Font.Size = FontUnit.Parse("9");
//权限控制菜单
TreeNode rootnode = new TreeNode();
rootnode.Text = text;
rootnode.Value = nodeid;
rootnode.ImageUrl = "../img/0_Person.gif";
if (Request.QueryString["Type"] == "User")
{
rootnode.NavigateUrl = "../User/AdminUser.aspx?dept_code=" + nodeid;
}
else
{
rootnode.NavigateUrl = "DeptRight.aspx?dept_code=" + nodeid;
}
rootnode.Target = "mainFrame";
tv.Nodes.Add(rootnode);
string sonparentid = nodeid;
CreateNode(sonparentid, rootnode, aldt);
}

}
/// <summary>
/// 邦定任意节点
/// </summary>
public void CreateNode(string parentid, TreeNode parentnode, DataTable dt)
{
DataRow[] drs = dt.Select("pare_code= '" + parentid + "'");//选出所有子节点
foreach (DataRow r in drs)
{
string nodeid = r["dept_code"].ToString();
string text = r["dept_name"].ToString();


//treeview set
this.tv.Font.Name = "宋体";
this.tv.Font.Size = FontUnit.Parse("9");

TreeNode node = new TreeNode();
node.Text = text;
node.Value = nodeid;
node.ImageUrl = "../img/0_Person.gif";
if (Request.QueryString["Type"] == "User")
{
node.NavigateUrl = "../User/AdminUser.aspx?dept_code=" + nodeid;
}
else
{
node.NavigateUrl = "DeptRight.aspx?dept_code=" + nodeid;
}
node.Target = "mainFrame";
//node.Expanded=true;
//node.SelectAction = TreeNodeSelectAction.Expand; //和ASP.NET1.1中TREEVIEW的SelectExpands属性等效
string sonparentid = nodeid;// or =location

if (parentnode == null)
{
tv.Nodes.Clear();
parentnode = new TreeNode();
tv.Nodes.Add(parentnode);
}
parentnode.ChildNodes.Add(node);
CreateNode(sonparentid, node, dt);
}
}



posted @ 2011-12-31 11:50 jiekk Views(317) Comments(0) Edit
一:在前台通过js获取DropDownList 控件选中的值 var dropDownList = document.getElementById("<%=DropDownListID.ClientID %>"); //获取DropDownList控件 var dropDownListValue = dropDownList.options[dropDownList.selectedIndex].value; //获取选择项的值二:最后一行显示的是GridView一列的相加结果找到RowDataBound事件,双击注册后,写入如下代码 if (e.Row.RowRead More
posted @ 2011-12-26 23:39 jiekk Views(323) Comments(0) Edit
<html><head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title></title> <link href="../gstyle/listpage.css" rel="stylesheet" type="text/css" /> <link href="../gstyle/easyui.css" Read More
posted @ 2011-08-30 16:27 jiekk Views(391) Comments(0) Edit
//var url ="ABC.html" //你想打开的页面var rets = window.showModalDialog(url, '', 'dialogheight=768px;dialogwidth=1024px');这个rets就是这个ABC.html的返回值//在ABC.html页面关闭该页之前应该这样赋值window.returnValue ="你想返回的值"//把只赋在这里,关闭该页的时候,另外一个页面就能获取到它的值了Read More
posted @ 2011-08-30 16:21 jiekk Views(170) Comments(0) Edit
easy-ui,treegrid或者是datagrid里面toolbar按钮的隐藏function HideButton(){//隐藏第一个按钮$('div.datagrid-toolbar a').eq(0).hide();//隐藏第一条分隔线$('div.datagrid-toolbar div').eq(0).hide();//显示第一个按钮$('div.datagrid-toolbar a').eq(0).show();//显示第一条分隔线$('div.datagrid-toolbar div').eq(0).hide()Read More
posted @ 2011-08-12 14:29 jiekk Views(485) Comments(0) Edit
这个是我在项目中用到的存储过程分页,现在摘录下来在SQL数据库编写存储过程语句 1 USE [ExTzglDev] 2 GO 3 4 /****** Object: StoredProcedure [dbo].[UP_GetRecordByPage] Script Date: 07/11/2011 11:16:57 ******/ 5 SET ANSI_NULLS ON 6 GO 7 8 SET QUOTED_IDENTIFIER ON 9 GO10 11 12 13 Create PROCEDURE [dbo].[UP_GetRecordByPage] 14 @TableName varchRead More
posted @ 2011-07-11 15:00 jiekk Views(232) Comments(5) Edit