// Pvalues[0]=行区域数据,Pvalues[1]=列区域数据,Pvalues[2]=数据区域数据
Microsoft.Office.Interop.Excel.Application m_objExcelApp;
Microsoft.Office.Interop.Excel.Workbook m_objExcelWorkBook;
Microsoft.Office.Interop.Excel.Worksheet m_objExcelWorkSheet;
Microsoft.Office.Interop.Excel.Worksheet m_objExcelWorkSheet2;
string strAbsolutePath = clsCommon.GetUploadFilePath(objPage, clsCommon.genmUploadFileKind.Templete, "");
string strRelativePath = clsCommon.GetUploadFileUrl(objPage, clsCommon.genmUploadFileKind.Templete, "");
string strFileName = Pvalues[3].ToString();
if (strFileName != null)
strFileName = strFileName.Split('/')[strFileName.Split('/').Length - 1];
m_objExcelApp = new Microsoft.Office.Interop.Excel.Application();
m_objExcelApp.DisplayAlerts = false;
m_objExcelWorkBook = m_objExcelApp.Workbooks.Open(strAbsolutePath + strFileName, Type.Missing,
true, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
m_objExcelWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)m_objExcelWorkBook.Sheets["每日一报透视表"];
DataTable dt = (DataTable)HttpContext.Current.Session["PVDT"];
int row = 1; int col = 1;
if (dt != null)
row = dt.Rows.Count+1;
col = dt.Columns.Count;
Microsoft.Office.Interop.Excel.PivotCaches objPivot = m_objExcelWorkBook.PivotCaches();
objPivot.Add(Microsoft.Office.Interop.Excel.XlPivotTableSourceType.xlDatabase, "总数据!R1C1:R" + row + "C" + col + "").CreatePivotTable
(m_objExcelWorkSheet.Cells[3, 1], "透视表", Type.Missing, Type.Missing);//"总数据!R2C1:R52C30" 原数据范围SHEET名称!R起始行C起始列:R数据总行数C数据总列数
Microsoft.Office.Interop.Excel.Range objRange = (Microsoft.Office.Interop.Excel.Range)m_objExcelWorkSheet.Cells[3, 1];
objRange.Select();
Microsoft.Office.Interop.Excel.PivotTable objTable = (Microsoft.Office.Interop.Excel.PivotTable)m_objExcelWorkSheet.PivotTables("透视表"); //数据存放的透视表
if (Pvalues[0] != "")
string[] pvX=Pvalues[0].Split('@');
for (int i = 1; i <= pvX.Length; i++)
Microsoft.Office.Interop.Excel.PivotField objField = (Microsoft.Office.Interop.Excel.PivotField)objTable.PivotFields(pvX[i-1].ToString()); //赋值行数据
objField.Orientation = Microsoft.Office.Interop.Excel.XlPivotFieldOrientation.xlRowField;
objField.Position = "" + i + ""; //表示同为行数据,不同的行数据的顺序
if (Pvalues[1] != "")
string[] pvY = Pvalues[1].Split('@');
for (int i = 1; i <= pvY.Length; i++)
Microsoft.Office.Interop.Excel.PivotField objFieldY = (Microsoft.Office.Interop.Excel.PivotField)objTable.PivotFields(pvY[i-1]); //赋值列数据
objFieldY.Orientation = Microsoft.Office.Interop.Excel.XlPivotFieldOrientation.xlColumnField;
objFieldY.Position = ""+i+"";
if (Pvalues[2] != "")
string[] pvZ = Pvalues[2].Split('@');
for (int i = 1; i <= pvZ.Length; i++)
Microsoft.Office.Interop.Excel.PivotField objFieldN = (Microsoft.Office.Interop.Excel.PivotField)objTable.PivotFields(pvZ[i-1].ToString()); //赋值数据区域数据
objFieldN.Orientation = Microsoft.Office.Interop.Excel.XlPivotFieldOrientation.xlDataField;
objFieldN.Position = ""+i+"";
m_objExcelWorkBook.SaveCopyAs(strAbsolutePath + strFileName);
m_objExcelApp.DisplayAlerts = false;
m_objExcelApp.Workbooks.Close();
m_objExcelApp.Quit();
return strRelativePath + strFileName;
private
Excel
.Application _
excel
Applicatin = null;
_
excel
Applicatin = new
Excel
.Application();
_
excel
Applicatin.Visible = tr
数据
透视
表
(Pivot Table)是一种交互式的
表
,可以进行某些计算,如求和与计数等,可动态地改变
透视
表
版面布置,也可以重新安排行号、列标和页字段。当改变版面布置时,数据
透视
表
也会按照新的布置来进行更新,可以说是一个功能强大的数据分析工具。因此,本篇文章将介绍在
C#
中关于
Excel
数据
透视
表
的操作示例,示例内容主要包含以下要点:
1.创建
透视
表
(1)创建...
数据
透视
表
是
Excel
中可以进行数据分类汇总和分析的一个强大工具,很多报
表
形式都可以通过数据
透视
表
来实现。它的一项重要功能是能够重新排列字段项,
使用
户可以从不同的角度对数据进行分析,并且无需进行复杂的操作,只需简单的拖拉即可实现。可以说数据
透视
表
的应用在我们现在的日常工作中已经非常广泛了。今天这篇文章将介绍如何以
C#
编程的方式在
Excel
文档中创建数据
透视
表
,对数据
透视
表
进行多种设置。
在无尽的追寻中,你会有一个又一个巧合和偶然,也会有一个又一个意外和错过。现实的城市犹如雾中的风景,隐隐地散发着忧郁的美,承载着没有承诺的梦Form1.cs代码:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
将多个字段拖到数据
透视
表
中的某个区域是完全可以的。我们将看一个示例,其中包含多个行字段,多个值字段和多个报
表
过滤器字段。
请记住,我们的数据集包含213条记录和6个字段。订单ID,产品,类别,金额,日期和国家/地区。
准本好了,那就开始吧。
多个行字段
首先,插入数据
透视
表
。接下来,将以下字段拖到不同的区域。
1.将“类别”字段和“国家/地区”字段添加到“行”区域。
2.将“金额”字段添加到“值”区域。
下面是生成的多级数据
透视
表
。
多个值字段
首先,插入数据
透视
表
。接下来,将以下字段拖到不同的区域.
EPPlus-Create advanced
Excel
spreadsheets on the server
这是官网地址。有需要可以去看看。利用Epplus组件,
导出
数据到
Excel
文件中,并生成
透视
表
。