.NET中列印Excel報表程式碼例項
1. 實驗環境
開發平臺:Visual Studio 2010
測試模板:JBtest
Excel:Office2007 Excel
2. 專案所用元件
為什麼選擇ASP.NET做列印的功能,因為office和Visual studio同是微軟的開發軟體,具有良好的相容性,利用上述.dll元件,可以輕鬆實現excel模板的匯入和excel資料的匯出。
ExcelQuicker.dll動態連結庫需要在網上下載,引用到專案中才可以使用。我用的這個版本比較早,版本號是2.2.0.0。現在的更新版本可能修改了一些函式和類的名稱,請參考後使用。
3. webconfig配置
4.專案結構
以上是專案的整體結構,其中,測試網頁為Default.aspx。Lib目錄下的ExcelQuicker.xml為ExcelQuicker元件的配置文件,Message.xml為匯入出錯時報錯的資訊。
5.報表列印
首先在實現列印的網頁後臺引用名稱空間:using ExcelQuicker.Framework;
利用ExcelQuicker.Framework空間的相應類提供的介面實現報表的新建
EQApplication objApp = new EQApplication(strFileName, EQReportFormat.Excel, strTemplate, false);
EQWorksheet objWS = new EQWorksheet(“報表資料”);
資料寫入到excel文件裡類似於VBA程式設計,具體細節功能請參考程式碼:Default.aspx.cs
EQRange range = new EQRange(objData, 11, 5, 15, 5); //從“11行 5列” 到 “22行 5列”
objWS.Add(range);
Default.aspx.cs後臺主要程式碼:
protected void dy_Click1(object sender, EventArgs e)
{
string wjm;
string strTemplate = “JBtest.xls”;//模板檔名稱
Initialize();//呼叫excel quicker初始化函式
// string strFileName = Session["yhid"].ToString();
string strFileName = “wangling”;
wjm = strFileName;
wjm = wjm + “_” + strTemplate;
set_Excel(wjm, strTemplate);//生成並設定此excel表
Response.Redirect(“..\\ExcelQuicker\\TempReports\\” + wjm);
}
public void Initialize()
{EQConfiguration.XmlFileName = HttpRuntime.AppDomainAppPath + “ExcelQuicker\\Lib\\Message.xml”;
EQConfiguration.Language = “EN”;
EQConfiguration.TemporaryFilePath = HttpRuntime.AppDomainAppPath + “ExcelQuicker\\TempReports\\”;
EQConfiguration.OutputFilePath = HttpRuntime.AppDomainAppPath + “ExcelQuicker\\TempReports\\”;
EQConfiguration.TemplateFilePath = HttpRuntime.AppDomainAppPath + “jb\\xls\\”;
}void set_Excel(string strFileName, string strTemplate)
{EQApplication objApp = new EQApplication(strFileName, EQReportFormat.Excel, strTemplate, false);
EQWorksheet objWS = new EQWorksheet(“報表資料”);object[,] objData, objData3, objData4, objData5, objData6, objData7;
objData = new object[5, 1];//用於存放要填充到Excel中的資料objData3 = new object[8, 1];
objData4 = new object[1, 1];
objData5 = new object[3, 1];objData6 = new object[8, 1];
objData7 = new object[8, 1];string ren, ren1, ren2, ren3;
objData[0, 0] = congye .Text ;//從業人員期末人數
objData[1, 0] = guanli .Text ;//單位負責人
objData[2, 0] = zaigang .Text ;//在崗職工
objData[3, 0] = laowu .Text ;//勞務派遣人員
objData[4, 0] =qita0 .Text ;//其他從業人員ren = “188″ + “ 人”;
ren1 = “22″ + “ 人”;
ren2 = “33″ + “ 人”;
ren3 = “44″ + “ 人”;
objData4[0, 0] = ren;//直接從事生產經營活動的平均人數
objData5[0, 0] = ren1;//其中:工程技術人員
objData5[1, 0] = ren2;//其中:一級建造師
objData5[2, 0] = ren3;//其中:現場施工人員EQRange range = new EQRange(objData, 11, 5, 15, 5); //從“11行 5列” 到 “22行 5列”
objWS.Add(range);EQRange range4 = new EQRange(objData4, 30, 3, 30, 3); //從“11行 5列” 到 “22行 5列”
objWS.Add(range4);
EQRange range5 = new EQRange(objData5, 32, 6, 34, 6); //從“11行 10列” 到 “22行 10列”
objWS.Add(range5);objData7[0, 0] = pingjun .Text ;
objData7[1, 0] =zaigangpj0.Text ;
objData7[2, 0] = laowupj0.Text ;
objData7[3, 0] = qitapj.Text ;
//range7 1-本季 平均人數//
EQRange range7 = new EQRange(objData7, 16, 5, 19, 5);
objWS.Add(range7);objData3[0, 0] =congyeg.Text ;//從業人員工資總額
objData3[1, 0] = zaizhig.Text ;//在崗職工工資總額
objData3[2, 0] = laog .Text ;//勞務派遣人員工資總額
objData3[3, 0] = qitag.Text ;//其他從業人員工資總額EQRange range3 = new EQRange(objData3, 21, 5, 24, 5); //從“11行 10列” 到 “22行 10列”
objWS.Add(range3);objData6[0, 0] = congyepjg.Text ;
objData6[1, 0] = zaigangpjg.Text ;
objData6[2, 0] =laowupjg.Text ;
objData6[3, 0] = qitapjg.Text ;
EQRange range6 = new EQRange(objData6, 25,5,28, 5);
objWS.Add(range6);//以下填寫報送人員資訊
string ryxx = “單位負責人: ” + df.Text + “ 統計負責人:” + xf.Text + ” 填表人:” + tf.Text;objData = new object[1, 1];
objData[0, 0] = ryxx;
range = new EQRange(objData, 35, 1, 35, 1);
objWS.Add(range);//以下填寫表頭單位名稱
objData = new object[1, 1];
objData[0, 0] = “Excel表格資料匯出測試”;
range = new EQRange(objData, 7, 1, 7, 1);
objWS.Add(range);
objApp.Add(objWS);try
{
objApp.Output();
}
catch (Exception)
{
objApp.Dispose();
}
}
6. 效果截圖
介面上填寫資料,把填寫的資料匯入到對應的excel文件裡面
填寫資料後,點選匯出excel按鈕,出現如圖介面
列印到Excel後的結果
以上小例子下載:Demo.zip
相關文章
- 在ASP程式中列印Excel報表的新方法 (轉)Excel
- 將表格資料匯入Excel表程式碼例項Excel
- C#條碼生成及列印例項程式碼C#
- javascript實現區域性列印程式碼例項JavaScript
- fastreport .net列印普通報表AST
- 清空form表單例項程式碼ORM單例
- 水晶報表官方例項下載:報表和應用程式 (轉)
- JavaScript 表單驗證程式碼例項JavaScript
- table表頭分組程式碼例項
- 表單提示美化效果程式碼例項
- 官方水晶報表 .NET 應用程式例項下載 (C#、Visual C++.NET) (轉)C#C++
- 基於VB和EXCEL的報表設計及列印Excel
- ABAP 報表開發例項
- jQuery清除表單資料程式碼例項jQuery
- 使用ajax方式提交表單程式碼例項
- js驗證表單項是否為空例項程式碼JS
- Excel中表頭表尾固定列印Excel
- Excel如何列印固定表頭和表尾Excel
- Excel vba 例項(1) - 批量製作工資表頭Excel
- angularJS進行表單提交程式碼例項AngularJS
- js重置form表單元素值程式碼例項JSORM
- 將表單元素序列為物件程式碼例項物件
- 將form表單序列為物件例項程式碼ORM物件
- canvas實現的鐘表效果程式碼例項Canvas
- jQuery表單驗證簡單程式碼例項jQuery
- jQuery設定select選中項程式碼例項jQuery
- iReport 報表、子報表、主從報表、合計、例項解析
- 表單驗證手機號碼格式例項程式碼
- 表單序列化應用程式碼相關程式碼例項
- jQuery is() 程式碼例項jQuery
- javascript過濾字串中特殊程式碼例項JavaScript字串
- js中找出最大值程式碼例項JS
- 將table表格內容匯入到word或者Excel程式碼例項Excel
- javascript以函式方式提交表單程式碼例項JavaScript函式
- js將表格匯入到Execel表例項程式碼JS
- 使用javascript清空表單元素資料程式碼例項JavaScript
- Domino中通用的檢視列印(利用Excel列印)Excel
- IIS下將報表列印到ExcelExcel