一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - Asp.net操作Excel更輕松的實現代碼

Asp.net操作Excel更輕松的實現代碼

2019-09-20 14:02asp.net教程網 ASP.NET教程

今天先介紹一個關于導出數據的例子,以Excel為模板。直接進入正題了

1.操作Excel的動態鏈接庫 
Asp.net操作Excel更輕松的實現代碼
2.建立操作動態鏈接庫的共通類,方便調用。(ExcelHelper) 
具體如下: 

復制代碼代碼如下:


using System; 
using System.Data; 
using System.Configuration; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 
using System.IO; 
using System.Reflection; 
using System.Diagnostics; 
using System.Collections; 
/// <summary> 
///ExcelHelper 的摘要說明 
/// </summary> 
public class ExcelHelper 

private string reportModelPath = null; 
private string outPutFilePath = null; 
private object missing = Missing.Value; 
Excel.Application app; 
Excel.Workbook workBook; 
Excel.Worksheet workSheet; 
Excel.Range range; 
/// <summary> 
/// 獲取或設置報表模板路徑 
/// </summary> 
public string ReportModelPath 

get { return reportModelPath; } 
set { reportModelPath = value; } 

/// <summary> 
/// 獲取或設置輸出路徑 
/// </summary> 
public string OutPutFilePath 

get { return outPutFilePath; } 
set { outPutFilePath = value; } 

public ExcelHelper() 

// 
//TODO: 在此處添加構造函數邏輯 
// 

/// <summary> 
/// 帶參ExcelHelper構造函數 
/// </summary> 
/// <param name="reportModelPath">報表模板路徑</param> 
/// <param name="outPutFilePath">輸出路徑</param> 
public ExcelHelper(string reportModelPath, string outPutFilePath) 

//路徑驗證 
if (null == reportModelPath || ("").Equals(reportModelPath)) 
throw new Exception("報表模板路徑不能為空!"); 
if (null == outPutFilePath || ("").Equals(outPutFilePath)) 
throw new Exception("輸出路徑不能為空!"); 
if (!File.Exists(reportModelPath)) 
throw new Exception("報表模板路徑不存在!"); 
//設置路徑值 
this.ReportModelPath = reportModelPath; 
this.OutPutFilePath = outPutFilePath; 
//創建一個應用程序對象 
app = new Excel.ApplicationClass(); 
//打開模板文件,獲取WorkBook對象 
workBook = app.Workbooks.Open(reportModelPath, missing, missing, missing, missing, missing, missing, 
missing, missing, missing, missing, missing, missing); 
//得到WorkSheet對象 
workSheet = workBook.Sheets.get_Item(1) as Excel.Worksheet; 

/// <summary> 
/// 給單元格設值 
/// </summary> 
/// <param name="rowIndex">行索引</param> 
/// <param name="colIndex">列索引</param> 
/// <param name="content">填充的內容</param> 
public void SetCells(int rowIndex,int colIndex,object content) 

if (null != content) 

content = content.ToString(); 

else 

content = string.Empty; 

try 

workSheet.Cells[rowIndex, colIndex] = content; 

catch 

GC(); 
throw new Exception("向單元格[" + rowIndex + "," + colIndex + "]寫數據出錯!"); 


/// <summary> 
/// 保存文件 
/// </summary> 
public void SaveFile() 

try 

workBook.SaveAs(outPutFilePath, missing, missing, missing, missing, missing, 
Excel.XlSaveAsAccessMode.xlExclusive, missing, missing, missing, missing); 

catch 

throw new Exception("保存至文件失敗!"); 

finally 

Dispose(); 


/// <summary> 
/// 垃圾回收處理 
/// </summary> 
protected void GC() 

if (null != app) 

int generation = 0; 
System.Runtime.InteropServices.Marshal.ReleaseComObject(app); 
generation = System.GC.GetGeneration(app); 
System.GC.Collect(generation); 
app = null; 
missing = null; 


/// <summary> 
/// 釋放資源 
/// </summary> 
protected void Dispose() 

workBook.Close(null, null, null); 
app.Workbooks.Close(); 
app.Quit(); 
if (null != workSheet) 

System.Runtime.InteropServices.Marshal.ReleaseComObject(workSheet); 
workSheet = null; 

if (workBook != null) 

System.Runtime.InteropServices.Marshal.ReleaseComObject(workBook); 
workBook = null; 

if (app != null) 

int generation = 0; 
System.Runtime.InteropServices.Marshal.ReleaseComObject(app); 
generation = System.GC.GetGeneration(app); 
System.GC.Collect(generation); 
app = null; 
missing = null; 



通過ExcelHelper類提供的SetCells()和SaveFile()方法可以給Excel單元格賦值并保存到臨時文件夾內。僅供參考。 
3.調用 
因為這里需要用到導出模板,所以需要先建立模板。具體如下:、 

復制代碼代碼如下:


/// <summary> 
/// 導出數據 
/// </summary> 
protected void Export_Data() 

int ii = 0; 
//取得報表模板文件路徑 
string reportModelPath = HttpContext.Current.Server.MapPath("ReportModel/導出訂單模板.csv"); 
//導出報表文件名 
fileName = string.Format("{0}-{1}{2}.csv", "導出訂單明細", DateTime.Now.ToString("yyyyMMdd"), GetRndNum(3)); 
//導出文件路徑 
string outPutFilePath = HttpContext.Current.Server.MapPath("Temp_Down/" + fileName); 
//創建Excel對象 
ExcelHelper excel = new ExcelHelper(reportModelPath, outPutFilePath); 

SqlDataReader sdr = Get_Data(); 
while (sdr.Read()) 

ii++; 
excel.SetCells(1 + ii, 1, ii); 
excel.SetCells(1 + ii, 2, sdr["C_Name"]); 
excel.SetCells(1 + ii, 3, sdr["C_Mtel"]); 
excel.SetCells(1 + ii, 4, sdr["C_Tel"]); 
excel.SetCells(1 + ii, 5, sdr["C_Province"]); 
excel.SetCells(1 + ii, 6, sdr["C_Address"]); 
excel.SetCells(1 + ii, 7, sdr["C_Postcode"]); 

sdr.Close(); 
excel.SaveFile(); 


關于導出就簡單寫到這,另外下一節講介紹如何通過這個類庫上傳Excel文件。 作者:WILLPAN

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国内精品91东航翘臀女神在线 | 国产精品成人va在线观看 | 成人午夜爽爽爽免费视频 | 日韩视频一区二区 | 办公室恋情在线观看 | 国产射频放大器 | 色综合伊人色综合网亚洲欧洲 | jazz中国在线视频 | 丰满岳乱妇在线观看视频国产 | 18hdxxxx中国 | 国产综合视频在线 | 免费观看一区二区 | 奇米白色| 精品国产国产综合精品 | 日本68xxxxxxxxx24 日本 片 成人 在线 | 久久综久久美利坚合众国 | 美女毛片视频 | 日韩去日本高清在线 | 3d欧美人与禽交 | 日韩美一区二区三区 | 无码乱人伦一区二区亚洲一 | 国产拍拍视频一二三四区 | 国产欧美日韩图片一区二区 | 我们日本在线观看免费动漫下载 | 91精品国产色综合久久不卡蜜 | 三年片韩国在线 | 国产在线视频在线观看 | 欧美色图日韩 | 国色天香社区视频在线观看免费完整版 | 超级乱淫伦短篇在车上 | 陈峰姚瑶全集小说无删节 | 色婷婷影院在线视频免费播放 | 成年人在线免费观看视频网站 | 国产成人cao在线 | 精品一久久香蕉国产线看观 | bl超h 高h 污肉快穿np | 999国产高清在线精品 | 亚洲天堂免费观看 | 日本免费全黄一级裸片视频 | 精品国产午夜久久久久九九 | 欧美日韩一区二区三区免费 |