2025-04-07 17:43:30 +08:00
using BLL ;
using System ;
using System.Collections.Generic ;
using System.Data ;
using System.Data.SqlClient ;
using System.Text ;
using AspNet = System . Web . UI . WebControls ;
using System.IO ;
using NPOI.XSSF.UserModel ;
using NPOI.SS.UserModel ;
using System.Threading ;
namespace FineUIPro.Web.HJGL.WeldingReport
{
public partial class JointComprehensive : PageBase
{
2025-04-14 15:31:57 +08:00
#region 定 义 项
/// <summary>
/// 项目主键
/// </summary>
public string ProjectId
{
get
{
return ( string ) ViewState [ "ProjectId" ] ;
}
set
{
ViewState [ "ProjectId" ] = value ;
}
}
2025-04-07 17:43:30 +08:00
public static int percent { get ; set ; }
public static string url { get ; set ; }
2025-04-14 15:31:57 +08:00
#endregion
2025-04-07 17:43:30 +08:00
#region 加 载
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load ( object sender , EventArgs e )
{
if ( ! IsPostBack )
{
percent = 0 ;
url = "" ;
Funs . DropDownPageSize ( this . ddlPageSize ) ;
this . ddlPageSize . SelectedValue = this . Grid1 . PageSize . ToString ( ) ;
2025-04-14 15:31:57 +08:00
this . ProjectId = this . CurrUser . LoginProjectId ;
if ( ! string . IsNullOrEmpty ( Request . Params [ "projectId" ] ) & & Request . Params [ "projectId" ] ! = this . CurrUser . LoginProjectId )
{
this . ProjectId = Request . Params [ "projectId" ] ;
}
this . InitDropDownList ( ) ;
this . ucTree . UnitId = this . CurrUser . UnitId ;
this . ucTree . ProjectId = this . ProjectId ;
if ( ! string . IsNullOrEmpty ( this . CurrUser . LoginProjectId ) )
{
this . panelLeftRegion . Hidden = true ;
////权限按钮方法
//this.GetButtonPower();
}
}
}
2025-04-07 17:43:30 +08:00
2025-04-14 15:31:57 +08:00
private void InitDropDownList ( )
{
//单位
// var unit = BLL.UnitService.GetUnitByUnitId(this.CurrUser.UnitId);
// if (unit != null && unit.UnitTypeId == BLL.Const.ProjectUnitType_2)
if ( CommonService . GetProjectUnitType ( this . ProjectId , this . CurrUser . UnitId ) ! = BLL . Const . ProjectUnitType_1 & & this . CurrUser . UnitId ! = Const . hfnbdId )
{
BLL . WorkAreaService . InitWorkAreaProjectUnitDropDownList ( this . drpWorkArea , this . ProjectId , this . CurrUser . UnitId , true ) ;
}
else
{
var supervisonUnit = BLL . WorkAreaService . IsSupervisor ( this . CurrUser . UnitId , this . ProjectId ) ;
if ( supervisonUnit )
2025-04-07 17:43:30 +08:00
{
2025-04-14 15:31:57 +08:00
BLL . WorkAreaService . InitWorkAreaProjectUnitDropDownList ( this . drpWorkArea , this . ProjectId , this . CurrUser . UnitId , true ) ;
2025-04-07 17:43:30 +08:00
}
else
{
2025-04-14 15:31:57 +08:00
BLL . WorkAreaService . InitWorkAreaByProjectId ( this . drpWorkArea , this . ProjectId , true ) ;
2025-04-07 17:43:30 +08:00
}
}
}
2025-04-14 15:31:57 +08:00
/// <summary>
/// 公司级树加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void changeTree ( object sender , EventArgs e )
{
this . ProjectId = this . ucTree . ProjectId ;
this . InitDropDownList ( ) ;
this . BindGrid ( ) ;
}
2025-04-07 17:43:30 +08:00
#endregion
#region 绑 定 BindGrid
/// <summary>
///
/// </summary>
private DataTable tb = null ;
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid ( )
{
2025-04-14 15:31:57 +08:00
if ( string . IsNullOrEmpty ( this . ProjectId ) )
{
return ;
}
2025-04-07 17:43:30 +08:00
string strSql = @"SELECT v.*,"
+ @" (select top 1 CHT_CheckDate from CH_Check c left join CH_CheckItem ci on ci.CHT_CheckID = c.CHT_CheckID where ci.JOT_ID = v.JOT_ID order by CHT_CheckDate desc) as CHT_CheckDate,"
+ @" (select top 1 CHT_CheckCode from CH_Check c left join CH_CheckItem ci on ci.CHT_CheckID = c.CHT_CheckID where ci.JOT_ID = v.JOT_ID order by CHT_CheckDate desc) as CHT_CheckCode"
+ @" FROM V_JOINTVIEW v WHERE 1=1 " ;
List < SqlParameter > listStr = new List < SqlParameter > ( ) ;
strSql + = " AND ProjectId = @ProjectId" ;
2025-04-14 15:31:57 +08:00
listStr . Add ( new SqlParameter ( "@ProjectId" , this . ProjectId ) ) ;
2025-04-07 17:43:30 +08:00
if ( this . drpWorkArea . SelectedValue ! = BLL . Const . _Null & & ! string . IsNullOrEmpty ( this . drpWorkArea . SelectedValue ) )
{
strSql + = " AND WorkAreaId =@workareaId" ;
listStr . Add ( new SqlParameter ( "@workareaId" , this . drpWorkArea . SelectedValue ) ) ;
}
2025-04-14 15:31:57 +08:00
if ( CommonService . GetProjectUnitType ( this . ProjectId , this . CurrUser . UnitId ) ! = BLL . Const . ProjectUnitType_1 & & this . CurrUser . UserId ! = Const . hfnbdId )
2025-04-07 17:43:30 +08:00
{
strSql + = " AND UnitId = @UnitId" ;
listStr . Add ( new SqlParameter ( "@UnitId" , this . CurrUser . UnitId ) ) ;
}
if ( ! string . IsNullOrEmpty ( this . txtJointDesc . Text . Trim ( ) ) )
{
strSql + = " AND JOT_JointDesc LIKE @JOT_JointDesc" ;
listStr . Add ( new SqlParameter ( "@JOT_JointDesc" , "%" + this . txtJointDesc . Text . Trim ( ) + "%" ) ) ;
}
if ( ! string . IsNullOrEmpty ( this . txtIsoNo . Text . Trim ( ) ) )
{
strSql + = " AND ISO_ISONO LIKE @isoNo" ;
listStr . Add ( new SqlParameter ( "@isoNo" , "%" + this . txtIsoNo . Text . Trim ( ) + "%" ) ) ;
}
SqlParameter [ ] parameter = listStr . ToArray ( ) ;
DataTable tb = SQLHelper . GetDataTableRunText ( strSql , parameter ) ;
Grid1 . RecordCount = tb . Rows . Count ;
var table = this . GetPagedDataTable ( Grid1 , tb ) ;
Grid1 . DataSource = table ;
Grid1 . DataBind ( ) ;
}
/// <summary>
/// 改变索引事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange ( object sender , GridPageEventArgs e )
{
BindGrid ( ) ;
}
/// <summary>
/// 分页下拉选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged ( object sender , EventArgs e )
{
Grid1 . PageSize = Convert . ToInt32 ( ddlPageSize . SelectedValue ) ;
BindGrid ( ) ;
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort ( object sender , FineUIPro . GridSortEventArgs e )
{
this . BindGrid ( ) ;
}
#endregion
#region 统 计 按 钮 事 件
/// <summary>
/// 统计
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnAnalyse_Click ( object sender , EventArgs e )
{
BindGrid ( ) ;
}
#endregion
#region 导 出 按 钮
protected void btnOut_Click ( object sender , EventArgs e )
{
percent = 0 ;
url = "" ;
string strSql = @"SELECT *"
+ @" FROM V_JOINTVIEW WHERE " ;
List < SqlParameter > listStr = new List < SqlParameter > ( ) ;
strSql + = " ProjectId = @ProjectId" ;
2025-04-14 15:31:57 +08:00
listStr . Add ( new SqlParameter ( "@ProjectId" , this . ProjectId ) ) ;
2025-04-07 17:43:30 +08:00
if ( this . drpWorkArea . SelectedValue ! = BLL . Const . _Null & & ! string . IsNullOrEmpty ( this . drpWorkArea . SelectedValue ) )
{
strSql + = " AND WorkAreaId =@workareaId" ;
listStr . Add ( new SqlParameter ( "@workareaId" , this . drpWorkArea . SelectedValue ) ) ;
}
2025-04-14 15:31:57 +08:00
if ( CommonService . GetProjectUnitType ( this . ProjectId , this . CurrUser . UnitId ) ! = BLL . Const . ProjectUnitType_1 & & this . CurrUser . UserId ! = Const . hfnbdId )
2025-04-07 17:43:30 +08:00
{
strSql + = " AND UnitId = @UnitId" ;
listStr . Add ( new SqlParameter ( "@UnitId" , this . CurrUser . UnitId ) ) ;
}
if ( ! string . IsNullOrEmpty ( this . txtJointDesc . Text . Trim ( ) ) )
{
strSql + = " AND JOT_JointDesc LIKE @JOT_JointDesc" ;
listStr . Add ( new SqlParameter ( "@JOT_JointDesc" , "%" + this . txtJointDesc . Text . Trim ( ) + "%" ) ) ;
}
if ( ! string . IsNullOrEmpty ( this . txtIsoNo . Text . Trim ( ) ) )
{
strSql + = " AND ISO_ISONO LIKE @isoNo" ;
listStr . Add ( new SqlParameter ( "@isoNo" , "%" + this . txtIsoNo . Text . Trim ( ) + "%" ) ) ;
}
Thread t = new Thread ( new ThreadStart ( ( ) = > { btnOut ( strSql , listStr . ToArray ( ) ) ; } ) ) ;
t . Start ( ) ;
PageContext . RegisterStartupScript ( "printX()" ) ;
}
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut ( string strSql , SqlParameter [ ] parameter )
{
//Response.ClearContent();
//string filename = Funs.GetNewFileName();
//Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("焊口综合信息" + filename, System.Text.Encoding.UTF8) + ".xls");
//Response.ContentType = "application/excel";
//Response.ContentEncoding = System.Text.Encoding.UTF8;
//Response.Write(GetGridTableHtml(Grid1));
//Response.End();
// SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper . GetDataTableRunText ( strSql , parameter ) ;
string rootPath = Server . MapPath ( "~/" ) + Const . ExcelUrl ;
//模板文件
string TempletFileName = Server . MapPath ( "~/" ) + "File/Excel/HJGL_DataOut/焊口综合信息.xlsx" ;
//导出文件
string filePath = rootPath + DateTime . Now . ToString ( "yyyyMMddhhmmss" ) + "\\" ;
if ( ! Directory . Exists ( filePath ) )
{
Directory . CreateDirectory ( filePath ) ;
}
string ReportFileName = filePath + "焊口综合信息" + DateTime . Now . ToString ( "yyyyMMddhhmmss" ) + ".xlsx" ;
FileStream file = new FileStream ( TempletFileName , FileMode . Open , FileAccess . Read ) ;
XSSFWorkbook hssfworkbook = new XSSFWorkbook ( file ) ;
ICellStyle styleCenter = hssfworkbook . CreateCellStyle ( ) ;
styleCenter . VerticalAlignment = VerticalAlignment . Center ;
styleCenter . Alignment = HorizontalAlignment . Center ;
styleCenter . BorderLeft = BorderStyle . Thin ;
styleCenter . BorderTop = BorderStyle . Thin ;
styleCenter . BorderRight = BorderStyle . Thin ;
styleCenter . BorderBottom = BorderStyle . Thin ;
styleCenter . WrapText = true ;
IFont font = styleCenter . GetFont ( hssfworkbook ) ;
font . Color = 10 ; //颜色
font . FontHeightInPoints = 10 ; //字体高度( 与excel中的字号一致)
styleCenter . SetFont ( font ) ;
XSSFSheet recordSheet = ( XSSFSheet ) hssfworkbook . GetSheet ( "焊口综合信息" ) ;
// recordSheet.AddMergedRegion(new CellRangeAddress(0, 0, 8, 9));
for ( int i = 1 ; i < = tb . Rows . Count ; i + + )
{
try
{
var row = recordSheet . CreateRow ( i ) ;
row . CreateCell ( 0 ) . SetCellValue ( "" + i ) ;
row . CreateCell ( 1 ) . SetCellValue ( tb . Rows [ i ] [ "WorkAreaCode" ] ! = DBNull . Value ? tb . Rows [ i ] [ "WorkAreaCode" ] . ToString ( ) : "" ) ;
row . CreateCell ( 2 ) . SetCellValue ( tb . Rows [ i ] [ "ISO_ISONO" ] ! = DBNull . Value ? tb . Rows [ i ] [ "ISO_ISONO" ] . ToString ( ) : "" ) ;
row . CreateCell ( 3 ) . SetCellValue ( tb . Rows [ i ] [ "JOT_BelongPipe" ] ! = DBNull . Value ? tb . Rows [ i ] [ "JOT_BelongPipe" ] . ToString ( ) : "" ) ;
row . CreateCell ( 4 ) . SetCellValue ( tb . Rows [ i ] [ "JOT_JointNo" ] ! = DBNull . Value ? tb . Rows [ i ] [ "JOT_JointNo" ] . ToString ( ) : "" ) ;
try
{
row . CreateCell ( 5 ) . SetCellValue ( tb . Rows [ i ] [ "JOT_Dia" ] ! = DBNull . Value ? ( ( decimal ) tb . Rows [ i ] [ "JOT_Dia" ] ) . ToString ( "##.#" ) : "" ) ;
}
catch ( Exception e ) { }
row . CreateCell ( 6 ) . SetCellValue ( tb . Rows [ i ] [ "JOT_Sch" ] ! = DBNull . Value ? tb . Rows [ i ] [ "JOT_Sch" ] . ToString ( ) : "" ) ;
row . CreateCell ( 7 ) . SetCellValue ( tb . Rows [ i ] [ "JOT_FactSch" ] ! = DBNull . Value ? tb . Rows [ i ] [ "JOT_FactSch" ] . ToString ( ) : "" ) ;
row . CreateCell ( 8 ) . SetCellValue ( tb . Rows [ i ] [ "MetalType" ] ! = DBNull . Value ? tb . Rows [ i ] [ "MetalType" ] . ToString ( ) : "" ) ;
row . CreateCell ( 9 ) . SetCellValue ( tb . Rows [ i ] [ "JOT_CellWelder" ] ! = DBNull . Value ? tb . Rows [ i ] [ "JOT_CellWelder" ] . ToString ( ) : "" ) ;
row . CreateCell ( 10 ) . SetCellValue ( tb . Rows [ i ] [ "JOT_FloorWelder" ] ! = DBNull . Value ? tb . Rows [ i ] [ "JOT_FloorWelder" ] . ToString ( ) : "" ) ;
row . CreateCell ( 11 ) . SetCellValue ( tb . Rows [ i ] [ "WeldingMethodName" ] ! = DBNull . Value ? tb . Rows [ i ] [ "WeldingMethodName" ] . ToString ( ) : "" ) ;
row . CreateCell ( 12 ) . SetCellValue ( tb . Rows [ i ] [ "DetectionRate" ] ! = DBNull . Value ? tb . Rows [ i ] [ "DetectionRate" ] . ToString ( ) : "" ) ;
row . CreateCell ( 13 ) . SetCellValue ( tb . Rows [ i ] [ "SER_NAME" ] ! = DBNull . Value ? tb . Rows [ i ] [ "SER_NAME" ] . ToString ( ) : "" ) ;
try
{
row . CreateCell ( 14 ) . SetCellValue ( tb . Rows [ i ] [ "JOT_WeldDate" ] ! = DBNull . Value ? ( ( DateTime ) tb . Rows [ i ] [ "JOT_WeldDate" ] ) . ToString ( "yyyy-MM-dd" ) : "" ) ;
}
catch ( Exception e ) { }
row . CreateCell ( 15 ) . SetCellValue ( tb . Rows [ i ] [ "JOT_DailyReportNo" ] ! = DBNull . Value ? tb . Rows [ i ] [ "JOT_DailyReportNo" ] . ToString ( ) : "" ) ;
row . CreateCell ( 16 ) . SetCellValue ( tb . Rows [ i ] [ "CH_TRUSTCODE1" ] ! = DBNull . Value ? tb . Rows [ i ] [ "CH_TRUSTCODE1" ] . ToString ( ) : "" ) ;
row . CreateCell ( 17 ) . SetCellValue ( tb . Rows [ i ] [ "ProessName" ] ! = DBNull . Value ? tb . Rows [ i ] [ "ProessName" ] . ToString ( ) : "" ) ;
row . CreateCell ( 18 ) . SetCellValue ( tb . Rows [ i ] [ "JOT_HotRpt" ] ! = DBNull . Value ? tb . Rows [ i ] [ "JOT_HotRpt" ] . ToString ( ) : "" ) ;
try
{
row . CreateCell ( 19 ) . SetCellValue ( tb . Rows [ i ] [ "CHT_CHECKDATE" ] ! = DBNull . Value ? ( ( DateTime ) tb . Rows [ i ] [ "CHT_CHECKDATE" ] ) . ToString ( "yyyy-MM-dd" ) : "" ) ;
}
catch ( Exception e ) { }
row . CreateCell ( 20 ) . SetCellValue ( tb . Rows [ i ] [ "JOT_Size" ] ! = DBNull . Value ? tb . Rows [ i ] [ "JOT_Size" ] . ToString ( ) : "" ) ;
row . CreateCell ( 21 ) . SetCellValue ( tb . Rows [ i ] [ "WMT_MatCode" ] ! = DBNull . Value ? tb . Rows [ i ] [ "WMT_MatCode" ] . ToString ( ) : "" ) ;
row . CreateCell ( 22 ) . SetCellValue ( tb . Rows [ i ] [ "WMT_Matname" ] ! = DBNull . Value ? tb . Rows [ i ] [ "WMT_Matname" ] . ToString ( ) : "" ) ;
row . CreateCell ( 23 ) . SetCellValue ( tb . Rows [ i ] [ "HsCode" ] ! = DBNull . Value ? tb . Rows [ i ] [ "HsCode" ] . ToString ( ) : "" ) ;
row . CreateCell ( 24 ) . SetCellValue ( tb . Rows [ i ] [ "Hsname" ] ! = DBNull . Value ? tb . Rows [ i ] [ "Hsname" ] . ToString ( ) : "" ) ;
row . CreateCell ( 25 ) . SetCellValue ( tb . Rows [ i ] [ "JOT_JointDesc" ] ! = DBNull . Value ? tb . Rows [ i ] [ "JOT_JointDesc" ] . ToString ( ) : "" ) ;
row . CreateCell ( 26 ) . SetCellValue ( tb . Rows [ i ] [ "If_dkName" ] ! = DBNull . Value ? tb . Rows [ i ] [ "If_dkName" ] . ToString ( ) : "" ) ;
row . CreateCell ( 27 ) . SetCellValue ( tb . Rows [ i ] [ "HotHardCode" ] ! = DBNull . Value ? tb . Rows [ i ] [ "HotHardCode" ] . ToString ( ) : "" ) ;
try
{
row . CreateCell ( 28 ) . SetCellValue ( tb . Rows [ i ] [ "HotHardDate" ] ! = DBNull . Value ? ( ( DateTime ) tb . Rows [ i ] [ "HotHardDate" ] ) . ToString ( "yyyy-MM-dd" ) : "" ) ;
}
catch ( Exception e ) { }
if ( ( int ) ( 90 * i / tb . Rows . Count ) > percent )
{
percent = ( int ) ( 90 * i / tb . Rows . Count ) ;
}
}
catch ( Exception )
{
}
}
using ( FileStream filess = File . OpenWrite ( ReportFileName ) )
{
hssfworkbook . Write ( filess ) ;
hssfworkbook . Close ( ) ;
filess . Flush ( ) ;
filess . Close ( ) ;
}
2025-04-14 15:31:57 +08:00
//PageContext.RegisterStartupScript(Window5.GetShowReference(String.Format("../../ReportPrint/ExReportPrint.aspx?ispop=1&reportId={0}&replaceParameter={1}&varValue={2}&projectId={3}", BLL.Const.HJGL_JointInfoReportId, isoId, varValue, this.ProjectId)));
2025-04-07 17:43:30 +08:00
percent = 100 ;
url = ReportFileName . Replace ( Server . MapPath ( "~/" ) , "" ) ;
/ /
//Response.Clear();
//Response.Charset = "GB2312";
//Response.ContentEncoding = System.Text.Encoding.UTF8;
//// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
//Response.AddHeader("Content-Disposition", "attachment; filename=焊口综合信息_" + Server.UrlEncode(DateTime.Now.ToString("yyyyMMddhhmmss") + ".xlsx"));
//// 添加头信息,指定文件大小,让浏览器能够显示下载进度
//Response.AddHeader("Content-Length", filet.Length.ToString());
//// 指定返回的是一个不能被客户端读取的流,必须被下载
//Response.ContentType = "application/ms-excel";
//// 把文件流发送到客户端
//Response.WriteFile(filet.FullName);
//// 停止页面的执行
//Response.End();
}
[System.Web.Services.WebMethod]
public static int getPercent ( )
{
return percent ;
}
[System.Web.Services.WebMethod]
public static string getUrl ( )
{
return url ;
}
#endregion
#region 导 出
protected void btnOut1_Click ( object sender , EventArgs e )
{
Response . ClearContent ( ) ;
string filename = Funs . GetNewFileName ( ) ;
Response . AddHeader ( "content-disposition" , "attachment; filename=" + System . Web . HttpUtility . UrlEncode ( "焊口综合信息" + filename , System . Text . Encoding . UTF8 ) + ".xls" ) ;
Response . ContentType = "application/excel" ;
Response . ContentEncoding = System . Text . Encoding . UTF8 ;
Response . Write ( GetGridTableHtml ( Grid1 ) ) ;
Response . End ( ) ;
}
/// <summary>
/// 导出方法
/// </summary>
/// <param name="grid"></param>
/// <returns></returns>
private string GetGridTableHtml ( Grid grid )
{
StringBuilder sb = new StringBuilder ( ) ;
grid . PageSize = this . Grid1 . RecordCount ;
BindGrid ( ) ;
sb . Append ( "<meta http-equiv=\"content-type\" content=\"application/excel; charset=UTF-8\"/>" ) ;
sb . Append ( "<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">" ) ;
sb . Append ( "<tr>" ) ;
foreach ( GridColumn column in grid . Columns )
{
sb . AppendFormat ( "<td>{0}</td>" , column . HeaderText ) ;
}
sb . Append ( "</tr>" ) ;
foreach ( GridRow row in grid . Rows )
{
sb . Append ( "<tr>" ) ;
foreach ( GridColumn column in grid . Columns )
{
string html = row . Values [ column . ColumnIndex ] . ToString ( ) ;
if ( column . ColumnID = = "tfNumber" )
{
html = ( row . FindControl ( "labNumber" ) as AspNet . Label ) . Text ;
}
sb . AppendFormat ( "<td style=\"vnd.ms-excel.numberformat:@\" >{0}</td>" , html ) ;
}
sb . Append ( "</tr>" ) ;
}
var sumary = grid . SummaryData ;
if ( sumary ! = null )
{
foreach ( GridColumn column in grid . Columns )
{
try
{
if ( sumary . ContainsKey ( column . ColumnID ) )
{
sb . AppendFormat ( "<td style=\"vnd.ms-excel.numberformat:@\" >{0}</td>" , sumary . GetValue ( column . ColumnID ) . ToString ( ) ) ;
}
else
{
sb . AppendFormat ( "<td style=\"vnd.ms-excel.numberformat:@\" >{0}</td>" , "" ) ;
}
}
catch ( Exception e )
{
sb . AppendFormat ( "<td style=\"vnd.ms-excel.numberformat:@\" >{0}</td>" , "" ) ;
}
}
}
sb . Append ( "</table>" ) ;
return sb . ToString ( ) ;
}
#endregion
}
}