zoukankan      html  css  js  c++  java
  • 今天写的一个导出html页面的过程

         private string ExportHtml()
            {
                string msg = "";
                try
                {
                    #region
                    string fileName = Application.StartupPath + "\\模板\\template.htm";//模板路径
                    DataTable tb = SqlModel.Query("SELECT A.*,B.DD0022_002,ISNULL(X.DD0022_002,'')AS 股票代码,ISNULL(X.DD0022_002,'')AS 债券代码,ISNULL(Y.DD0022_002,'')AS 港股 FROM(SELECT DISTINCT A.NEWSCODE AS 新闻编码,A.NW0001_002 AS 文章标题," +
                    "A.NW0001_003 AS 文章正文,A.NW0001_004 AS 媒体来源,B.ITCODE AS ITCODE,C.ITNAME AS ITNAME " +
                    "FROM CMBDB.DBO.CSNW0003 A INNER JOIN(SELECT NEWSCODE,INDICATORSCODE,ITCODE FROM CMBDB.DBO.CSNW0002 )B  " +
                    "ON A.NEWSCODE = B.NEWSCODE LEFT JOIN(SELECT * FROM DD0006) C ON B.ITCODE = C.ITCODE WHERE B.INDICATORSCODE<>'90101' AND A.NW0001_001='" + DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00.000' AND A.ENTRYTIME<='09:00:00' " +
                    ")A LEFT JOIN(SELECT SENAME,DD0022_002,ITCODE FROM(SELECT SENAME,DD0022_002,ITCODE,ROW_NUMBER()OVER(PARTITION BY ITCODE ORDER BY DD0022_002 ASC) AS RANK FROM " +
                    "(SELECT SECODE,SENAME FROM BASICDB.DBO.DD0007 WHERE DD0007_002='1' AND DD0007_004 IN (101,102) )A LEFT JOIN " +
                    "DD0011 B ON A.SECODE=B.SECODE LEFT JOIN DD0009 C " +
                    "ON B.SECODE=C.SECODE LEFT JOIN DD0022 D ON C.TRCODE=D.SECODE WHERE DD0022_001 ='5000' )Z WHERE RANK=1)B ON A.ITCODE=B.ITCODE LEFT JOIN(SELECT ITCODE,DD0022_002 FROM(SELECT * FROM DD0011) A " +
                    "LEFT JOIN DD0009 B ON A.SECODE=B.SECODE LEFT JOIN DD0022 C ON B.TRCODE=C.SECODE WHERE A.SECODE LIKE '104%' AND DD0022_001='5000' AND MKCODE IN (1,2))X ON X.ITCODE=B.ITCODE " +
                    "LEFT JOIN(SELECT ITCODE,DD0022_002 FROM(SELECT * FROM DD0011 WHERE LEFT(SECODE,3)='101')A LEFT JOIN(SELECT * FROM DD0009 WHERE LEFT(TRCODE,3)='201')B ON A.SECODE=B.SECODE " +
                    "LEFT JOIN(SELECT * FROM DD0022 WHERE DD0022_001='5000' AND MKCODE='3')C ON B.TRCODE=C.SECODE)Y ON Y.ITCODE=A.ITCODE");//类型1的信息
                    string html = string.Empty;//所有的html;
                    string titlelink1 = string.Empty;//上市公司及债券人标题链接
                    string ArticleContent1 = string.Empty;//上市公司及债券人内容
                    string titlelink2 = string.Empty;//其他机构标题链接
                    string ArticleContent2 = string.Empty;//其他机构内容
                    string titlelink3=string.Empty;//行业标题连接
                    string ArticleContent3=string.Empty;//行业内容
                    string ArticleContent33=string.Empty;//行业内容
                    string code = "";
                    string reasset = "";
                    string sort = "";
                    string content = "";
                    int itcount = 0;
                    int newscount = 0;
                    Hashtable ht = new Hashtable();
                    #endregion

                    #region
                    itcount = tb.Rows.Count;
                    for (int i = 0; i < tb.Rows.Count; i++)
                    {
                        if (tb.Rows[i]["DD0022_002"].ToString() == "" && tb.Rows[i]["港股"].ToString() == "")
                            continue;
                        code = tb.Rows[i][0].ToString();
                        if (ht.Contains(code))
                        {
                            continue;
                        }
                        else
                        {
                            ht.Add(code, i);
                        }
                        newscount += 1;
                        titlelink1 += "<li class='li'><a  class='ctitle' href='#a" + newscount + "'>" + tb.Rows[i][1].ToString() + "</a></li>";
                        ArticleContent1 += @"<table width='100%' border='0' align='center' cellpadding='0' cellspacing='0'  style='margin-top:0px;border-bottom:#CCC solid 1px;'>
                                          <tr>
                                            <td  colspan='3'>
                                           <div class='ArticleTitle'>
                                              <div style='margin:10px auto 1px;'><a name='a" + newscount + "'></a>" + tb.Rows[i][1].ToString() + @"</div>
                                                          <div style='margin:0px; font-size:12px; color:#404040; font-weight:normal;'>来源:" +tb.Rows[i][3].ToString()+@"
                                                      </div>
                                                      <div style='background:url(images/line.gif) no-repeat; 749px; height:1px;'></div>
                                                  
                                              </div>
                                             </td></tr>
                                          <tr>
                                            <td  colspan='3'class='paragraph'>"+tb.Rows[i][2].ToString()+@"
                                        </td>
                                            </tr>
                                          <tr>
                                            <td width='187'>&nbsp;</td>
                                            <td width='187'>&nbsp;</td>
                                            <td width='382' align='right'><a href='#_Top'><img src='images/top.gif' width='48' height='17'></a></td>
                                          </tr>
                                        </table>";
                    }
                    StreamReader sr = new StreamReader(fileName, System.Text.Encoding.GetEncoding("utf-8"));
                    html = sr.ReadToEnd();
                    html=html.Replace("<!--上市公司及债券人link-->", titlelink1);
                    html=html.Replace("<!--上市公司及债券人Content-->", ArticleContent1);
                    string path = Application.StartupPath + "\\temp\\负面信息监控早报" + DateTime.Now.ToString("yyyyMMdd") + ".htm";
                    #endregion
                    #region
                    itcount = tb.Rows.Count;
                    for (int i = 0; i < tb.Rows.Count; i++)
                    {
                        if (tb.Rows[i]["DD0022_002"].ToString() != "" || tb.Rows[i]["港股"].ToString() != "")
                            continue;
                        code = tb.Rows[i][0].ToString();
                        if (ht.Contains(code))
                        {
                            continue;
                        }
                        else
                        {
                            ht.Add(code, i);
                        }
                        newscount += 1;
                        titlelink2 += "<li class='li'><a  class='ctitle' href='#a" + newscount + "'>" + tb.Rows[i][1].ToString() + "</a></li>";
                        ArticleContent2 += @"<table width='100%' border='0' align='center' cellpadding='0' cellspacing='0'  style='margin-top:0px;border-bottom:#CCC solid 1px;'>
                                          <tr>
                                            <td  colspan='3'>
                                           <div class='ArticleTitle'>
                                              <div style='margin:10px auto 1px;'><a name='a" + newscount + "'></a>" + tb.Rows[i][1].ToString() + @"</div>
                                                          <div style='margin:0px; font-size:12px; color:#404040; font-weight:normal;'>来源:" + tb.Rows[i][3].ToString() + @"
                                                      </div>
                                                      <div style='background:url(images/line.gif) no-repeat; 749px; height:1px;'></div>
                                                  
                                              </div>
                                             </td></tr>
                                          <tr>
                                            <td  colspan='3'class='paragraph'>" + tb.Rows[i][2].ToString() + @"
                                        </td>
                                            </tr>
                                          <tr>
                                            <td width='187'>&nbsp;</td>
                                            <td width='187'>&nbsp;</td>
                                            <td width='382' align='right'><a href='#_Top'><img src='images/top.gif' width='48' height='17'></a></td>
                                          </tr>
                                        </table>";
                    }
                    html=html.Replace("<!--其他机构link-->", titlelink2);
                    html=html.Replace("<!--其他机构Content-->", ArticleContent2);
                   
                    #endregion
                    #region 行业

                    string hysql = @"select distinct
                                         a.NewsCode as 新闻编码,
                                            a.NW0001_002 as 文章标题,
                                         a.NW0001_003 as 文章正文,
                                            a.NW0001_004 as 媒体来源,
                                            DD0003_006,
                                        case when DD0003_006='地区分类' then REGIONNAME
                                           when DD0003_006='国标行业分类' then c.industryname
                                         end as abc,
                                            g.industryname,
                                         a.NW0001_001 as 发布时间,
                                         a.ENTRYTIME as 时间
                                         from
                                         CMBDB.DBO.csnw0003 A
                                         inner join
                                         (select NewsCode, NW0006_001,NW0006_002 from CMBDB.DBO.csnw0006
                                         where NW0006_001 not in (2)
                                         )B
                                            on a.newscode = b.newscode
                                         left join
                                         (
                                         select industrycode,industryname from basicdb.dbo.dd0025 where dd0025_003='9' and dd0025_004='1'
                                         union all
                                            select '254545690','电力、燃气及水的生产和供应业'
                                            union all
                                         select a.industrycode,b.industryname from
                                         (select industrycode,industryname,dd0025_004,industrycode2 from basicdb.dbo.dd0025 where dd0025_003='9' and dd0025_004='2' and industrycode<>'254545690')a
                                         left join
                                         (select industrycode,industryname,dd0025_004,industrycode2 from basicdb.dbo.dd0025 where dd0025_003='9' and dd0025_004='1')b
                                         on a.industrycode2=b.industrycode
                                         union all
                                         select a.industrycode,c.industryname from
                                         (select industrycode,industryname,dd0025_004,industrycode2 from basicdb.dbo.dd0025 where dd0025_003='9' and dd0025_004='3' and industrycode not in ('254545637','254545622'))a
                                         left join
                                         (select industrycode,industryname,dd0025_004,industrycode2 from basicdb.dbo.dd0025 where dd0025_003='9' and dd0025_004='2')b
                                         on a.industrycode2=b.industrycode
                                         left join
                                         (select industrycode,industryname,dd0025_004,industrycode2 from basicdb.dbo.dd0025 where dd0025_003='9' and dd0025_004='1')c
                                         on c.industrycode=b.industrycode2
                                         ) c
                                         on b.NW0006_002 = cast(c.industrycode as varchar(max))
                                         LEFT JOIN
                                         (SELECT * FROM CMBDB.DBO.DD0003 WHERE DD0003_001 = 152 AND DD0003_005 IN ('1','3'))D
                                         ON D.DD0003_005=B.NW0006_001
                                         LEFT JOIN
                                         (SELECT * FROM CMBDB.DBO.CSNW0006 WHERE NW0006_001='1')E
                                         ON E.NEWSCODE=A.NEWSCODE
                                         LEFT JOIN
                                         (SELECT * FROM basicdb.dbo.DD0020)F
                                         ON E.nw0006_002=F.REGIONCODE
                                             left join
                                         (select * from basicdb.dbo.dd0025) g
                                         on b.NW0006_002 = g.industrycode
                                         where a.NW0001_001='" + DateTime.Now.ToString("yyyy-MM-dd") + @" 00:00:00.000' and a.ENTRYTIME<='09:00:00' and a.examine='1' ---and nw0006_001=3
                                         and DD0003_006 is not null and DD0003_006<>'地区分类'";//类型3的信息

                    tb = SqlModel.Query(hysql);
                    List<string> listhyfl = new List<string>();
                    foreach (DataRow drhyfl in tb.Rows)//检索出所有的行业大类放到一个list集合中
                    {
                        if (!listhyfl.Contains(drhyfl["abc"].ToString()))
                            listhyfl.Add(drhyfl["abc"].ToString());
                    }
                    ht.Clear();
                    int icount = 0;
                    foreach (string hyfl in listhyfl)//新修改按行业分类输出、行业类型作为二级、标题为三级--ljc
                    {
                        icount += 1;
                        ArticleContent33="";
                        titlelink3+="<div style='margin:2px 4px 0px;'><a class='ctype' href='#toc001'>&nbsp;&nbsp;【"+hyfl+"】</a></div><ul style='color: #CCC; margin:0px auto 0px;'>";
                        ArticleContent3+=@" <tr>
        <td width='5'></td>
        <td height='5' colspan='2'>
        <div class='"+(icount==1?"typehead":"typehead1")+@"'></div>
        </td>
        </tr><tr>
        <td style='padding:0px;'><img src='images/ProductType1.gif' width='5' height='40' border='0'/></td>
        <td width='30%' style='white-space:nowrap;'><div style='background:url(images/ProductType2.gif) repeat-x; auto; color:#FFF; font-family:Arial, Helvetica, sans-serif 14px; height:38px; 50px; padding-top:8px;'>&nbsp;&nbsp;" + hyfl + @"&nbsp;&nbsp;</div></td>
        <td width='65%' style='border-right:#CCC solid 1px;'>&nbsp;&nbsp;</td>
      </tr>
      <tr>
        <td></td>
        <td colspan='2'>
         <div class='ArticleContent1'>
      <!--Content3-->
    </div>
    </td>
      </tr>
     ";
                        DataRow[] drSelect = tb.Select("abc='" + hyfl + "'");
                        for (int i = 0; i < drSelect.Length; i++)
                        {
                            code = drSelect[i][0].ToString();
                            //if (ht.Contains(code))
                            //{
                            //    continue;
                            //}
                            //else
                            //{
                            //    ht.Add(code, i);
                            //}
                            sort = drSelect[i][4].ToString();
                            newscount += 1;
                            if (sort == "国标行业分类")
                            {
                                reasset = drSelect[i]["industryname"].ToString();
                                sort = "国内-行业";
                            }
                            else if (sort == "地区分类")
                            {
                                if (drSelect[i]["industryname"].ToString() == "香港")
                                {
                                    sort = "香港-行业";
                                }
                                else
                                {
                                    sort = "国内-行业";
                                }
                                reasset = drSelect[i][5].ToString();
                            }
                             titlelink3+="<li class='li'><a  class='ctitle' href='#a"+newscount+"'>"+drSelect[i][1].ToString()+"</a></li>";
                             ArticleContent33 += @"<table width='100%' border='0' align='center' cellpadding='0' cellspacing='0'  style='margin-top:0px;border-bottom:#CCC solid 1px;'>
                                          <tr>
                                            <td  colspan='3'>
                                           <div class='ArticleTitle1'>
                                              <div style='margin:10px auto 1px;'><a name='a" + newscount + "'></a>" + drSelect[i][1].ToString() + @"</div>
                                                         <div style='margin:0px; font-size:12px; color:#404040; font-weight:normal;'>来源:" + drSelect[i][3].ToString() + "&nbsp;&nbsp;分类:" + sort + "&nbsp;&nbsp;关联资产:" + reasset + @"
                                                      </div>
                                                      <div style='background:url(images/line.gif) no-repeat; 749px; height:1px;'></div>
                                                  
                                              </div>
                                             </td></tr>
                                          <tr>
                                            <td  colspan='3' class='paragraph'>" + drSelect[i][2].ToString() + @"</td>
                                            </tr>
                                          <tr>
                                            <td width='187'>&nbsp;</td>
                                            <td width='187'>&nbsp;</td>
                                            <td width='382' align='right'><a href='#_Top'><img src='images/top.gif' width='48' height='17'></a></td>
                                          </tr>
                                        </table>";

                        }
                        titlelink3 += "</ul>";
                        ArticleContent3 = ArticleContent3.Replace(" <!--Content3-->", ArticleContent33);
                    }
                    html=html.Replace("<!--行业link-->", titlelink3);
                    html=html.Replace("<!--行业Content-->", ArticleContent3);
                    html = html.Replace("<a name=\"_Top\"></a><span class=\"date\" >2011-07-28", "<a name=\"_Top\"></a><span class=\"date\" >"+DateTime.Now.ToString("yyyy年MM月dd日"));
                    path = Application.StartupPath + "\\temp\\负面信息监控早报" + DateTime.Now.ToString("yyyyMMdd") + ".htm";
                    if (!File.Exists(path))
                    {
                        using (StreamWriter sw = File.CreateText(path))
                        {
                            sw.Write(html);
                        }
                    }
                    else
                    {
                        FileStream fs = File.Open(path, FileMode.OpenOrCreate, FileAccess.ReadWrite);
                        using (StreamWriter sw =new StreamWriter(fs))
                        {
                            sw.Write(html);
                        }

                    }
                    //newDbInput.Mail.Preview review = new newDbInput.Mail.Preview(html);
                    //review.Show();
                   #endregion
                    msg = "导出成功!";
                }
                catch (Exception ex)
                {
                    msg = ex.Message;
                }
                return msg;
            }

        }

  • 相关阅读:
    Understanding about Baire Category Theorem
    Isometric embedding of metric space
    Convergence theorems for measurable functions
    Mindmap for "Principles of boundary element methods"
    Various formulations of Maxwell equations
    Existence and uniqueness theorems for variational problems
    Kernels and image sets for an operator and its dual
    [loj6498]农民
    [luogu3781]切树游戏
    [atAGC051B]Three Coins
  • 原文地址:https://www.cnblogs.com/lijinchang/p/2118530.html
Copyright © 2011-2022 走看看