จะจับ Control ตัวอื่นๆหลังจาก Export excel เป็นรูปแบบ html ยังไงครับ พอ popup excel ขึ้นมาแล้วมันจับไม่ได้ครับ ขอบคุณล่วงหน้าครับ
จะเคลียร์ Gridview หรือ textbox ตัวอื่นๆหลังจากกดปุ่ม open , save หรือ cancel popup excel ที่ขึ้นมายังไงครับ มันจับคอนโทรลไม่ได้
Code
protected void exportExcel(DataTable dt)
{
StringBuilder sb = new StringBuilder();
sb.AppendFormat("<HTML xmlns:x=\"urn:schemas-microsoft-com:office:excel\" charset=\"utf-8\">");
sb.AppendFormat("<HEAD><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">");
sb.AppendFormat(@"
<style></style>
<!--[if gte mso 9]><xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>Sheet1</x:Name>
<x:WorksheetOptions>
<x:Print>
<x:ValidPrinterInfo/>
</x:Print>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml><![endif]-->
</HEAD>
");
sb.AppendFormat("<BODY><TABLE BORDERCOLOR='#000000'>");
sb.AppendFormat("<TR>");
sb.AppendFormat("<TD>");
sb.AppendFormat("{0}", "Planner Profile:");
sb.AppendFormat("</TD>");
sb.AppendFormat("<TD>{0}</TD>", "ZCMG");
sb.AppendFormat("</TR>");
sb.AppendFormat("<TR>");
sb.AppendFormat("<TD>{0}</TD>", "Version:");
sb.AppendFormat("<TD>{0}</TD>", v_Version);
sb.AppendFormat("</TR>");
sb.AppendFormat("<TR>");
sb.AppendFormat("<TD>{0}</TD>", "Period From:");
sb.AppendFormat("<TD>{0}</TD>", "1 TO 12");
sb.AppendFormat("</TR>");
sb.AppendFormat("<TR>");
sb.AppendFormat("<TD>{0}</TD>", "Fiscal Year:");
sb.AppendFormat("<TD>{0}</TD>", v_Year);
sb.AppendFormat("</TR>");
sb.AppendFormat("<TR>");
sb.AppendFormat("<TD>{0}</TD>", "Company Code:");
sb.AppendFormat("<TD>{0}</TD>", v_Company);
sb.AppendFormat("</TR>");
sb.AppendFormat("<TR>");
sb.AppendFormat("</TR>");
int iCol = 0;
sb.AppendFormat("<TR>");
for (int i = 22; i < 39; i++)
{
iCol++;
sb.AppendFormat("<TD STYLE='background-color:#C0C0C0;font-weight:bold;text-align:center;height: 25px;'>{0}</TD>", dt.Columns[i].ColumnName.ToString().Substring(24));
}
sb.AppendFormat("</TR>");
int iRow = 0;
int rowError = 0;
foreach (DataRow dr in dt.Rows)
{
iRow++;
iCol = 0;
sb.AppendFormat("<TR>");
for (int i = 22; i < 39; i++)
{
iCol++;
sb.AppendFormat("<TD>{0}</TD>", dr[i].ToString());
if (i == 38)
{
if (dr[i].ToString() != "")
{
if (dr[i].ToString().Substring(0, 7) != "Warning")
{ rowError++; }
}
}
}
sb.AppendFormat("</TR>");
}
int rCount = dt.Rows.Count - 1;
sb.AppendFormat("<TR>");
sb.AppendFormat("<TD>{0}</TD>", "Total value:");
sb.AppendFormat("<TD>{0}</TD>", dt.Rows[rCount]["O_TOTAL_VALUE"].ToString());
sb.AppendFormat("</TR>");
sb.AppendFormat("<TR>");
sb.AppendFormat("<TD>{0}</TD>", "Total record:");
sb.AppendFormat("<TD>{0}</TD>", dt.Rows.Count - 1);
sb.AppendFormat("</TR>");
sb.AppendFormat("<TR>");
sb.AppendFormat("<TD>{0}</TD>", "Total error:");
sb.AppendFormat("<TD>{0}</TD>", rowError);
sb.AppendFormat("</TR>");
sb.AppendFormat("</TABLE>");
sb.AppendFormat("</BODY>");
sb.AppendFormat("</HTML>");
Response.Clear();
Response.Buffer = true;
Response.Write(sb);
Response.ContentType = "application/vnd.msexcel";
Response.AppendHeader("Content-Disposition", "attachment; filename=ProfitUpload" + Convert.ToString(DateTime.Now.ToString("dd/MM/yyyy")) + ".xls");
Response.End();
}
Tag : .NET, Ms SQL Server 2005, HTML/CSS, Excel (Excel.Application), C#
Date :
2012-01-31 10:45:42
By :
vigoss
View :
1088
Reply :
2
ขอภาพประกอบครับ หรืออธิบายเพิ่มเติมครับ
Date :
2012-01-31 19:26:59
By :
webmaster
พอ popup dialog excel ขึ้นมา พอกด open,save หรือ cancel แล้วจะเคลียร์ค่าใน gridview หรือเคลียร์ค่าใน textbox หรือ control ตัวอื่นๆไม่ได้อ่ะครับ เหมือนมันจะจับไปที่ excel dialog พอเราใช้ response.write และ End() มันจะจับ Control ที่อยู่ใน Form ไม่ได้ครับ คือผมต้อง new page() หรือ htmlForm ยังไงช่วยแนะนำหรือมีโค้ดก็จะขอบคุณเป็นอย่างยิ่งนะครับ ขอบคุณล่วงหน้าครับ
Date :
2012-01-31 20:05:37
By :
vigoss
Load balance : Server 02