导出excel方法二

   #region 导出表结构
        private void Export(string TypeId)
        {
            string strXML = "";
            strXML = CreateXML(TypeId);
            string path = this.txtPath.Value;

            string name = "表结构" + "_" + string.Format("{0}", Session["UserName"]) + "_" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls";
            this.Name.Value = name;
            this.dbtxtData.Value = strXML;

            Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script language='javascript'>CreatFile();</script>");
        }

        private string CreateXML(string TypeId)
        {
            DataTable dt = new DataTable();
            string UserCode = Session["UserCode"].ToString();
            dt = JHSoft.ConstructDB.DBOperate.GetTables(UserCode, TypeId);
            StringBuilder strXmlShow = new StringBuilder();
            DataRowCollection drc = dt.Rows;
            if (drc.Count > 0)
            {
                foreach (DataRow dr in drc)
                {
                    string strXmlFrame = string.Empty;
                    string TableCode = dr["TableCode"].ToString();
                    string TableName = dr["TableName"].ToString();
                    string TableId = dr["TableId"].ToString();
                    string kk = "<meta http-equiv='content-type' content='application/ms-excel; charset=gb2312'/><table cellspacing=\"0\" rules=\"all\" border=\"1\" id style=\"border-collapse:collapse;font-family:CamBria;\">";
                    kk += "<tr align=\"Center\" style=\"background-color:#CAE1FF;height:35px;\"><td><b><font color='red'>表名:" + TableCode + "</font></b></td><td><b><font color='red'>表的中文名称:" + TableName + "</font></b></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>";
                    strXmlShow.Append(kk);
                    DataTable dtField = new DataTable();
                    JHSoft.ConstructDB.DBOperate db = new JHSoft.ConstructDB.DBOperate(UserCode);
                    dtField = db.SearchByTableAndStruc(TableId);
                    if (dtField != null && dtField.Rows.Count > 0)
                    {
                        strXmlFrame = "<tr align=\"Center\" style=\"background-color:#CAE1FF;height:30px;\"><td><b>序号</b></td><td><b>字段名称</b></td><td><b>字段描述</b></td><td><b>字段类型</b></td><td><b>是否主键</b></td><td><b>是否自增长</b></td><td><b>是否外键</b></td><td><b>是否为空</b></td></tr>";
                        for (int i = 0; i < dtField.Rows.Count; i++)
                        {
                            string FieldName = dtField.Rows[i]["FieldName"].ToString();
                            string DescriptionInfo = dtField.Rows[i]["DescriptionInfo"].ToString();
                            string DataType = dtField.Rows[i]["DataType"].ToString();
                            string FieldLength = dtField.Rows[i]["FieldLength"].ToString();
                            if (FieldLength != "")
                            {
                                FieldLength = "(" + FieldLength + ")";
                            }
                            else
                            {
                                FieldLength = "";
                            }
                            string PrimeKey = dtField.Rows[i]["PrimeKey"].ToString();
                            if (PrimeKey == "1")
                            {
                                PrimeKey = "<font color='red'>主键</font>";
                            }
                            else
                            {
                                PrimeKey = "";
                            }
                            string foreignKey = dtField.Rows[i]["foreignKey"].ToString();
                            if (foreignKey == "1")
                            {
                                foreignKey = "<font color='red'>外键</font>";
                            }
                            else
                            {
                                foreignKey = "";
                            }
                            string ForNull = dtField.Rows[i]["ForNull"].ToString();
                            if (ForNull == "1")
                            {
                                ForNull = "<font color='red'>不允许空</font>";
                            }
                            else
                            {
                                ForNull = "允许空";
                            }
                            string Identify = dtField.Rows[i]["Identify"].ToString();
                            if (Identify == "1")
                            {
                                Identify = "<font color='red'>自增长</font>";
                            }
                            else
                            {
                                Identify = "";
                            }
                            int num = i + 1;
                            strXmlFrame += "<tr align=\"Center\"><td><b>" + num + "</b></td><td>" + FieldName + "</td><td>" + DescriptionInfo + "</td><td><font color='#4169E1'>" + DataType + FieldLength + "</font></td><td>" + PrimeKey + "</td><td>" + Identify + "</td><td>" + foreignKey + "</td><td>" + ForNull + "</td></tr>";
                        }
                        strXmlFrame += "<tr></tr>";
                        strXmlFrame += "<tr></tr>";
                        strXmlFrame += "<tr></tr>";
                        strXmlShow.Append(strXmlFrame.ToString());
                        strXmlShow.Append("</table>");
                    }
                    else
                    {
                        strXmlFrame = "<tr align=\"Center\" style=\"background-color:#CAE1FF;height:30px;\"><td><b>序号</b></td><td><b>字段名称</b></td><td><b>字段描述</b></td><td><b>字段类型</b></td><td><b>是否主键</b></td><td><b>是否自增长</b></td><td><b>是否外键</b></td><td><b>是否为空</b></td></tr>";
                        strXmlFrame += "<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>";
                        strXmlFrame += "<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>";
                        strXmlFrame += "<tr></tr>";
                        strXmlFrame += "<tr></tr>";
                        strXmlShow.Append(strXmlFrame.ToString());
                        strXmlShow.Append("</table>");
                    }
                }
            }

            if (dt != null)
                dt.Dispose();
            return strXmlShow.ToString();
        }
        #endregion

posted @ 2013-05-20 23:40  Trilyn  阅读(144)  评论(0)    收藏  举报