十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
不知道你是怎么百度的,你的百度关键词应当选择“VB 统计多个excel文件中的数据”。
在东宁等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站建设、网站制作 网站设计制作定制开发,公司网站建设,企业网站建设,成都品牌网站建设,全网整合营销推广,成都外贸网站制作,东宁网站建设费用合理。
1、数据透视表是用于在excel中不通过编程就实现汇总数据的目的,既然你都想编程了,数据透视表也就失去意义。
2、ACCESS更是无稽之谈,多此一举。
3、Excel文件不管多少,最重要的是每个文件要有统一的格式,这样就有了编程的前提。
实现方法是:
1、让程序能找到所有excel文件
2、用子过程读取每一个文件,获得所需要的数据,进行汇总
3、所有数据进行汇总,得到结果。
With Me.ReportViewer1 '初始化报表
.Dock = DockStyle.Fill
.LocalReport.DataSources.Clear()
.LocalReport.ReportPath = "Report1.rdlc"
.RefreshReport()
End With
报表在设计时,不一定要绑定数据源,但在窗体加载时,需要初始化报表控件,以上代码可以放在窗体加载的Load事件里,供你参考。
这个专业我也学得不是很好,用书上得例子吧。
某公司尽力需要了解公司在全国各地得销售情况,设计一个水晶报表。统计个地区得销售总额和全国总额
准备工作
用 SQL server 2000 创建一个数据库company 在该数据库中创建一个表Sales.用于储存区域销售数据
在表Sales 中添加若干条记录
设计报表
打开 Visual Studio.NET创建名为 Salesreport得 WINDOWS应用程序 将Form1.cs 名更改为 frmSalesReport.cs
frmSalesReport窗体得属性设置里。 吧 frmSalesReport.cs得Text属性更改为"区域销售报表"
把NAME属性更改为frmSalesReport。
在 VisualStudio.NET 菜单中选择 项目添加新项。在"添加新项"窗口得“类别”区域扩展 “本地项目项”,选择数据,在"模板"区域选择"数据集" 在"名称"那将Dataset1.xsd改名 SalesDetaset.xsd
单击"打开" 将生成一个新得结构文件 SalesDataset.xsd 该文件将显示在 ADO.NET数据集设计器中。
Private Sub Worksheet_Activate()
ActiveSheet.PivotTables("数据透视表1").PivotCache.Refresh
ActiveSheet.PivotTables("数据透视表2").PivotCache.Refresh
EndSub
这个是在透视表没有重命名的情况,且有多个透视表的情况下的代码。点击透视表所在Sheet页时触发,当然代码也是写在对应Sheet中的。
Excel.Application excel = default(Excel.Application);
Excel._Workbook xBk = default(Excel._Workbook);
Excel._Worksheet xSt = default(Excel._Worksheet);
Excel.Range xRange = default(Excel.Range);
Excel.PivotCache xPivotCache = default(Excel.PivotCache);
Excel.PivotTable xPivotTable = default(Excel.PivotTable);
Excel.PivotField xPivotField = default(Excel.PivotField);
string cnnsr = null;
string sql = null;
string[] RowFields = {
"",
"",
""
};
string[] PageFields = {
"",
"",
"",
"",
"",
""
};
//SERVER 是服务器名或服务器的IP地址
//DATABASE 是数据库名
//Table 是表名
try {
// 开始导出
cnnsr = "ODBC;DRIVER=SQL Server;SERVER=" + SERVER;
cnnsr = cnnsr + ";UID=;APP=Report Tools;WSID=ReportClient;DATABASE=" + DATABASE;
cnnsr = cnnsr + ";Trusted_Connection=Yes";
excel = new Excel.ApplicationClass();
xBk = excel.Workbooks.Add(true);
xSt = xBk.ActiveSheet;
xRange = xSt.Range("A4");
xRange.Select();
// 开始
xPivotCache = xBk.PivotCaches.Add(SourceType: 2);
xPivotCache.Connection = cnnsr;
xPivotCache.CommandType = 2;
sql = "select * from " + Table;
xPivotCache.CommandText = sql;
xPivotTable = xPivotCache.CreatePivotTable(TableDestination: "Sheet1!R3C1", TableName: "数据透视表1", DefaultVersion: 1);
//准备行字段
RowFields[0] = "字段1";
RowFields[1] = "字段2";
RowFields[2] = "字段3";
//准备页面字段
PageFields[0] = "字段4";
PageFields[1] = "字段5";
PageFields[2] = "字段6";
PageFields[3] = "字段7";
PageFields[4] = "字段8";
PageFields[5] = "字段9";
xPivotTable.AddFields(RowFields: RowFields, PageFields: PageFields);
xPivotField = xPivotTable.PivotFields("数量");
xPivotField.Orientation = 4;
// 关闭工具条
//xBk.ShowPivotTableFieldList = False
//excel.CommandBars("PivotTable").visible = False
excel.Visible = true;
} catch (Exception ex) {
if (cnn.State == ConnectionState.Open) {
cnn.Close();
}
xBk.Close(0);
excel.Quit();
MessageBox.Show(ex.Message, "报表工具", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
CrystalReportViewer
dataset 定义数据源
.rpt 文件描述具体报表样式
再加一个调用报表的FORM,就可以实现简单的报表功能
Option Explicit
dim Report as New Cystal1
Private Sub Form_Load()
Screen.MousePointer = vbHourglass
'调用水晶报表时置鼠标为沙漏状 CRViewer91.ReportSource = Report '该语句的赋值将在后面被修改
CRViewer91.ViewReport
Screen.MousePointer = vbDefault '调用水晶报表完成后置鼠标为默认形状
End Sub
Private Sub Form_Resize()
CRViewer91.Top = 0
CRViewer91.Left = 0
CRViewer91.Height = ScaleHeight
CRViewer91.Width = ScaleWidth
End Sub