簡體   English   中英

將ID添加到HTML表代碼字符串

[英]Add IDs To HTML Table Code String

我有一個已導出為HTML文件的Excel電子表格。 Excel文件為某些單元格具有“定義的名稱”。 我想以某種方式打開導出的HTML文件,然后通讀Excel文件定義的名稱集合,並給對應的HTML表單元格一個ID,我可以將其解析回Excel文件的定義名稱。 給單元格指定ID(和runat =“ server”屬性)后,我想將修改后的HTML作為字符串/文件寫出,以便將其填充到ASP頁面中。

有人可以告訴我解決方法嗎? 我以為我可以使用System.Web.UI.HtmlControls.HtmlTable類,然后將導出的HTML代碼填充到InnerHtml屬性中,開始比賽。 las,InnerHtml屬性對HtmlTable(或HtmlTableRow)無效(寫或讀),但由於某種原因,它對HtmlTableCell有效。

必須有一種方法,因為,只需將導出的HTML粘貼到VS IDE中的aspx頁面中,然后將id =“ MyTable”和runat =“ server”添加到<table>標記中,將立即為我提供一個HtmlTable我可以在頁面上下文中使用的對象。

顯然,我並不需要完全充​​實的工作代碼,僅需要幾行就可以開始。 請不要因為我的無知罪而殺了我!

如果有幫助,我非常懷疑,這是導出時Excel產生的示例:

 <table border=0 cellpadding=0 cellspacing=0 width=856 style='border-collapse: collapse;table-layout:fixed;width:642pt'> <tr class=xl1527583 height=30 style='mso-height-source:userset;height:22.5pt'> <td colspan=4 height=30 class=xl13127583 width=442 style='border-right:.5pt solid black; height:22.5pt;width:331pt'><a name="RANGE!A1:G197">BLAH FORM</a></td> <td class=xl6427583 width=91 style='border-left:none;width:68pt'>&nbsp;</td> <td class=xl6527583 width=62 style='width:47pt'>&nbsp;</td> <td class=xl6527583 width=261 style='width:196pt'>&nbsp;</td> </tr> <tr class=xl1527583 height=21 style='height:15.75pt'> <td colspan=4 height=21 class=xl13427583 style='border-right:.5pt solid black; height:15.75pt'>Title:</td> <td colspan=3 rowspan=3 class=xl11527583 width=414 style='border-right:.5pt solid black; border-bottom:.5pt solid black;width:311pt'><font class="font827583">BLAH Management System<br> Document Number:</font><font class="font927583"><br> 12.3.456A</font></td> </tr> </table> 

導出的HTML中大約有4300行-其中2600行是樣式信息。 他們有時會更改此表單,我不想每次都重新構建它。

我不是一個有能力等待正確的做事方式的人,這就是我想到的。 正如我指出的那樣,VS IDE很顯然內置了HTML解析器,如果我只能弄清楚它在VS IDE之外的位置以及如何從我的代碼訪問,該解析器將非常適合我的目的。 我決定嘗試以目前我唯一知道的方式使用它。 我將導出的HTML代碼粘貼到新的aspx Web表單頁面中。 然后,我創建了如下所示的Page_Init事件處理代碼。

// This is not absolutely necessary, but you may want to include it
using System.Web.UI.HtmlControls;

  protected void Page_PreInit(object sender, EventArgs e)
  {
    StringWriter strWtr;
    StringBuilder sbldr;
    HtmlTextWriter htmlWtr;

    // Put in table modifying code here
    this.tbl_Mine.Rows[0].ID = "r1";
    this.tbl_Mine.Rows[0].Cells[0].ID = "r1c1";
    sbldr = new StringBuilder();
    strWtr = new StringWriter(sbldr);
    htmlWtr = new HtmlTextWriter(strWtr);

    this.tbl_Mine.RenderControl(htmlWtr);
    File.WriteAllText(@"C:\Temp\HtmlTblMod.htm", sbldr.ToString());
  }

啟動后,頁面將寫出我想要的更新,因此我可以將它們粘貼到真實的aspx頁面中。 盡管此方法可行,但GOT還是一種更好的方法來完成它……任何建議對這項任務采取明智方法的人都將接受他們的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM