C GridView控制項匯出Excel及多層表頭類

2021-05-21 19:09:15 字數 3259 閱讀 6597

using system;

using system.data;

using system.configuration;

using system.web;

using system.web.security;

using system.web.ui;

using system.web.ui.webcontrols;

using system.web.ui.webcontrols.webparts;

using system.web.ui.htmlcontrols;

///

/// exceledit 的摘要說明

/// 注意事項一:在呼叫此類的頁新增下列方法

///  public override void verifyrenderinginserverform(system.web.ui.control control)

/// 

///

/// 注意事項二:

/// splittableheader函式是用在gridview控制項的rowcreated事件中,呼叫方法如下例子:

/// protected void gridview1_rowcreated(object sender, gridviewroweventargs e)

///       

///        }

///

/// 注意事項三:

/// modifygrdheader函式,詳細看函式說明。

///

public class exceledit

///

/// 定義dataset屬性

///

private dataset _ds;

public dataset ds

get

}///

/// 定義gridview屬性

///

private gridview _gv;

public gridview gv

get

}///

/// 繫結資料來源,成功返回true,失敗返回false。

///

///

/// 匯出gridview控制項中的資料excel

///

///

/// 在繫結後匯出時可以改變_gv表頭

///

public void modifygrdheader()

else

int bflag = isvisible(namelist, k, i, lastfname);

switch (bflag)

);foreach (string ename in endcolname)

break;}}

if (k != row - 1)}}

///

/// 如果上一行已經輸出和當前內容相同的列頭,則不顯示

///

/// 表頭集合

/// 行索引

/// 列索引

/// 1:顯示,-1:含','分隔符,0:不顯示

private int isvisible(string[,] columnlist, int rowindex, int colindex, string currname)

else

else}}

return 1;

}///

/// 取得和當前索引行及列對應的下級的內容所跨的行數

///

/// 表頭集合

/// 行數

/// 行索引

/// 列索引

/// 行數

private int getspanrowcount(string[,] columnlist, int row, int rowindex, int colindex)

else

}return rowspan;

}///

/// 取得和當前索引行及列對應的下級的內容所跨的列數

///

/// 表頭集合

/// 行數

/// 列數

/// 行索引

/// 列索引

/// 列數

private int getspancolcount(string[,] columnlist, int row, int col, int rowindex, int colindex)

).length;

colspan = colspan == 1 ? 0 : colspan;

for (int i = colindex + 1; i < col; i++)

).length;

}else

}return colspan;

}///

/// 將已定義的表頭儲存到陣列

///

/// 新表頭

/// 行數

/// 列數

/// 表頭陣列

private string[,] convertlist(string newheaders, int row, int col)

);string[,] news = new string[col, row];

string name = "";

for (int i = 0; i < col; i++)

);for (int k = 0; k < row; k++)

else

}else

}else

}else

else}}

}return news;

}///

/// 取得復合表頭的行數

///

/// 新表頭

/// 行數

private int getrowcount(string newheaders)

);int count = 0;

foreach (string name in columnnames)

).length;

if (tempcount > count)

count = tempcount;

}return count;

}///

/// 取得復合表頭的列數

///

/// 新表頭

/// 列數

private int getcolcount(string newheaders)

).length;

}#endregion

}

oracle Oracle匯出表結構至Excel

user col comments 表名 列名 說明 user tab comments 表名 型別 說明 user objects 字典表檢視 表名稱及說明 t3.comments as 表說明 t1.column name as 欄位名稱 t1.data type t1.data length ...

使用GridView將資料匯入或匯出Excel中

preclass csharp name code using system using system.collections using system.configuration using system.data using system.linq using system.web using ...

從DataTable高效率匯出資料到Excel

首先從資料庫讀取資料到datatable,這我就不提了,大家都明白。下面直接介紹如何從datatable高效率匯出資料到excel中的方法,如下 using microsoft.office.interop.excel using system.runtime.interopservices dll...