程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 生成Excel高級報表

生成Excel高級報表

編輯:關於.NET

前不久行裡說要生成一個如下的Excel報表,試了很多種方法都不行,突然想到excel引用,宏,試寫了下,發現效果不錯.

各位可以參考此方法生成任意格式的Excel,可能很多人直接用程序來一行行的寫,想想這是多復雜的事情啊,想設置Excel格式就更加復雜了.而且程序循環效率也極慢,照我方法可以直接下載後就直接打印,格式全部已設置好.好了,廢話不多說,覺得好用多多推廣,轉載請注示一下來自http://www.cnbolgs.com/xiaobier,謝謝.以下是生成後的效果圖:

我這裡用的數據庫是SQL server.說一下思路:

先制作一個excel樣式,如上圖,我這裡標題是固定的,部門和日期是動態的,列名是固定的,中間那塊數據是動態的,部門考勤員名字是動態的,其他都是靜態.

把樣式先做好.以下圖是我先做好的樣式:

8,9為什麼要留兩行,是為了第10行的統計函數設置,合計那行是已經設置好excel公式的,如C10是Sum(C8:C9)依此類推,如果往8,9中間插入行那excel

會自動擴展第10行的公式,如原是Sum(C8:C9)那插入一行就自動變成sum(C8:C10),這個大家應該都知道.而且往8,9中間插入行他的格式是根前一行

相同的,所以就這裡就設置好了動態數據區的格式了.其他幾個地方也是一樣.

第三行的日期我是讓他引用sheet2中的A2,部門是B2,考勤員是C2

下圖是Sheet2,其中sheetdate,department,oper是列名,用來向sheet2這三個字段插入記錄的

效果圖中的主要數據區我是放在sheet3中,以下是sheet3樣式,同樣是列名,以效果圖中是對應的.

sheet2只有一條記錄,所以直接在sheet1對應處引用即可,如何讓sheet1中引用sheet3中的數據,因為sheet3中的記錄是動態的,

也不知道有多少行,所以要利用宏了.寫宏其實也很簡單,我這裡也沒寫多少行代碼.

Sub Macro1()
'
' Macro1 Macro
' 宏由 XiaoBier 錄制,
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved