Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2014, 23:12   #1
CWD
Пользователь
 
Регистрация: 10.11.2009
Сообщений: 50
По умолчанию C# Excel Pivot table

Добрый день, как достать значение из созданной сводной таблицы.
Например нужно второе значение из колонки "Sales". (5). GetPivotData не работает или я не понимаю как использовать. Буду признателен за советы. спасибо.
Код требует ссылки на библиотеку Excel.
Код:
using System;

namespace TestExcel
{
	class Program
	{
		static object useDefault = Type.Missing;
		public static void Main(string[] args)
		{
			Excel.Application ObjExcel = new Excel.Application();
			Excel.Workbook ObjWorkBook;
			Excel.Worksheet ObjWorkSheet;
			Excel.PivotTable pivotTable = null;
			Excel.PivotField salesRegion = null;
    		Excel.PivotField salesAmount = null;

			ObjWorkBook = ObjExcel.Workbooks.Add(System.Reflection.Missing.Value);
			ObjWorkSheet=(Excel.Worksheet)ObjWorkBook.Worksheets[1];
			Excel.Range oCells= ObjWorkSheet.Cells;
			oCells[1,1]="Date";
			oCells[2,1]="March 1";
			oCells[3,1]="March 8";
			oCells[4,1]="March 15";
			
			oCells[1,2]="Customer";
			oCells[2,2]="Smith";
			oCells[3,2]="Jones";
			oCells[4,2]="James";
			
			oCells[1,3]="Sales";
			oCells[2,3]="23";
			oCells[3,3]="5";
			oCells[4,3]="10";
			
			Excel.Range pivotData = null;
    		Excel.Range pivotDestination = null;
			pivotData = ObjWorkSheet.get_Range("A1", "C7");
        	pivotDestination = ObjWorkSheet.get_Range("A11", useDefault);
        
			ObjWorkBook.PivotTableWizard(
				Excel.XlPivotTableSourceType.xlDatabase,
            pivotData,
            pivotDestination,
            "Test",
            true,
            true,
            true,
            true,
            useDefault,
            useDefault,
            false,
            false,
            Excel.XlOrder.xlDownThenOver,
            0,
            useDefault,
            useDefault
            );
        	 pivotTable =(Excel.PivotTable)ObjWorkSheet.PivotTables("Test");
        	 salesRegion = ((Excel.PivotField)pivotTable.PivotFields(2));
       		 salesAmount = ((Excel.PivotField)pivotTable.PivotFields(3));
        	
       		  pivotTable.Format(Excel.XlPivotFormatType.xlReport2);
        salesRegion.Orientation =Excel.XlPivotFieldOrientation.xlRowField;


        salesAmount.Orientation = Excel.XlPivotFieldOrientation.xlDataField;
        salesAmount.Function = Excel.XlConsolidationFunction.xlSum;
        
       		//pivotTable.GetPivotData("Sales","Customer");
       		//Console.WriteLine(pivotTable.GetPivotData("Sales",'$A$4'));
			       		ObjExcel.Visible = true;
			ObjExcel.UserControl = true;
       		ObjWorkSheet.Activate();
		}
	}
}
CWD вне форума Ответить с цитированием
Старый 16.07.2014, 00:20   #2
CWD
Пользователь
 
Регистрация: 10.11.2009
Сообщений: 50
По умолчанию

Код:
try{
       		Console.WriteLine( pivotTable.GetPivotData("Sales",useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault
        	                                           ,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault,useDefault).Value2);
       		
        
        	Console.ReadLine();
        }
        catch (Exception ex)
        {
        	Console.WriteLine(ex.Message);
        	Console.Read();
        }
Выдает 38, но как его модифицировать что бы выдало значение 5?
CWD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Power Pivot для Excel (добавление столбца с расчетами) baters Microsoft Office Excel 1 10.08.2012 14:19
Как обработать таблицу <table></table> и отобразить данные в программе? Человек_Борща Работа с сетью в Delphi 1 05.10.2010 15:42
нужна одно table где все rows from table 1 но и еще добавленных table 2 Why Помощь студентам 0 20.09.2010 10:29
Выгрузка вычисляемых полей Table в Excel Nika03 БД в Delphi 2 20.05.2010 14:46
создать pivot table в 2003м excele (как в 2007м) delem0NA0 Microsoft Office Excel 0 28.04.2010 10:43