Файл данных для графика excel

Любую информацию легче воспринимать, если она представлена наглядно. Это особенно актуально, когда мы имеем дело с числовыми данными. Их необходимо сопоставить, сравнить. Оптимальный вариант представления – диаграммы. Будем работать в программе Excel.

Так же мы научимся создавать динамические диаграммы и графики, которые автоматически обновляют свои показатели в зависимости от изменения данных. По ссылке в конце статьи можно скачать шаблон-образец в качестве примера.

Как построить диаграмму по таблице в Excel?

  1. Создаем таблицу с данными.
  2. Исходные данные.

  3. Выделяем область значений A1:B5, которые необходимо презентовать в виде диаграммы. На вкладке «Вставка» выбираем тип диаграммы.
  4. Тип диаграмм.

  5. Нажимаем «Гистограмма» (для примера, может быть и другой тип). Выбираем из предложенных вариантов гистограмм.
  6. Тип гистограмм.

  7. После выбора определенного вида гистограммы автоматически получаем результат.
  8. Такой вариант нас не совсем устраивает – внесем изменения. Дважды щелкаем по названию гистограммы – вводим «Итоговые суммы».
  9. График итоговые суммы.

  10. Сделаем подпись для вертикальной оси. Вкладка «Макет» — «Подписи» — «Названия осей». Выбираем вертикальную ось и вид названия для нее.
  11. Подпись вертикальной оси.

  12. Вводим «Сумма».
  13. Конкретизируем суммы, подписав столбики показателей. На вкладке «Макет» выбираем «Подписи данных» и место их размещения.
  14. Подписи данных.

  15. Уберем легенду (запись справа). Для нашего примера она не нужна, т.к. мало данных. Выделяем ее и жмем клавишу DELETE.
  16. Изменим цвет и стиль.
  17. Измененный стиль графика.

Выберем другой стиль диаграммы (вкладка «Конструктор» — «Стили диаграмм»).



Как добавить данные в диаграмму в Excel?

  1. Добавляем в таблицу новые значения — План.
  2. Добавлен показатели плана.

  3. Выделяем диапазон новых данных вместе с названием. Копируем его в буфер обмена (одновременное нажатие Ctrl+C). Выделяем существующую диаграмму и вставляем скопированный фрагмент (одновременное нажатие Ctrl+V).
  4. Так как не совсем понятно происхождение цифр в нашей гистограмме, оформим легенду. Вкладка «Макет» — «Легенда» — «Добавить легенду справа» (внизу, слева и т.д.). Получаем:
  5. Отображение показателей плана.

Есть более сложный путь добавления новых данных в существующую диаграмму – с помощью меню «Выбор источника данных» (открывается правой кнопкой мыши – «Выбрать данные»).

Выбор источника данных.

Когда нажмете «Добавить» (элементы легенды), откроется строка для выбора диапазона данных.

Как поменять местами оси в диаграмме Excel?

  1. Щелкаем по диаграмме правой кнопкой мыши – «Выбрать данные».
  2. Выбрать данные.

  3. В открывшемся меню нажимаем кнопку «Строка/столбец».
  4. Значения для рядов и категорий поменяются местами автоматически.
  5. Результат.

Как закрепить элементы управления на диаграмме Excel?

Если очень часто приходится добавлять в гистограмму новые данные, каждый раз менять диапазон неудобно. Оптимальный вариант – сделать динамическую диаграмму, которая будет обновляться автоматически. А чтобы закрепить элементы управления, область данных преобразуем в «умную таблицу».

  1. Выделяем диапазон значений A1:C5 и на «Главной» нажимаем «Форматировать как таблицу».
  2. Форматировать как таблицу.

  3. В открывшемся меню выбираем любой стиль. Программа предлагает выбрать диапазон для таблицы – соглашаемся с его вариантом. Получаем следующий вид значений для диаграммы:
  4. Выпадающие списки.

  5. Как только мы начнем вводить новую информацию в таблицу, будет меняться и диаграмма. Она стала динамической:
  6. Динамическая диаграма.

Мы рассмотрели, как создать «умную таблицу» на основе имеющихся данных. Если перед нами чистый лист, то значения сразу заносим в таблицу: «Вставка» — «Таблица».

Как сделать диаграмму в процентах в Excel?

Представлять информацию в процентах лучше всего с помощью круговых диаграмм.

Исходные данные для примера:

Новая таблица.

  1. Выделяем данные A1:B8. «Вставка» — «Круговая» — «Объемная круговая».
  2. Объемная круговая.

  3. Вкладка «Конструктор» — «Макеты диаграммы». Среди предлагаемых вариантов есть стили с процентами.
  4. Стили с процентами.

  5. Выбираем подходящий.
  6. Результат выбора.

  7. Очень плохо просматриваются сектора с маленькими процентами. Чтобы их выделить, создадим вторичную диаграмму. Выделяем диаграмму. На вкладке «Конструктор» — «Изменить тип диаграммы». Выбираем круговую с вторичной.
  8. Круговая с вторичной.

  9. Автоматически созданный вариант не решает нашу задачу. Щелкаем правой кнопкой мыши по любому сектору. Должны появиться точки-границы. Меню «Формат ряда данных».
  10. Формат ряда данных.

  11. Задаем следующие параметры ряда:
  12. Параметры ряда.

  13. Получаем нужный вариант:
  14. Результат после настройки.

Диаграмма Ганта в Excel

Диаграмма Ганта – это способ представления информации в виде столбиков для иллюстрации многоэтапного мероприятия. Красивый и несложный прием.

  1. У нас есть таблица (учебная) со сроками сдачи отчетов.
  2. Таблица сдачи отчетов.

  3. Для диаграммы вставляем столбец, где будет указано количество дней. Заполняем его с помощью формул Excel.
  4. Выделяем диапазон, где будет находиться диаграмма Ганта. То есть ячейки будут залиты определенным цветом между датами начала и конца установленных сроков.
  5. Открываем меню «Условное форматирование» (на «Главной»). Выбираем задачу «Создать правило» — «Использовать формулу для определения форматируемых ячеек».
  6. Вводим формулу вида: =И(E$2>=$B3;E$2<=$D3). С помощью оператора «И» Excel сравнивает дату текущей ячейки с датами начала и конца мероприятия. Далее нажимаем «Формат» и назначаем цвет заливки.
  7. Диаграмма Ганта.

Когда вам нужно построит презентабельный отчет финансовой активности предприятия, лучше использовать средства графического представления информации.

Графическое представление информации намного эффективней и быстрей усваивается человеческим зрительным восприятием информации, чем текст и цифры. Легче проводить аналитики, лучше видно ситуацию, как в целом, так и в отдельных деталях.

Простенькая диаграмма Ганта готова. Скачать шаблон с примером в качестве образца.

Готовые примеры графиков и диаграмм в Excel скачать:

Диаграммы скачать в ExcelСкачать шаблоны и дашборды с диаграммами для отчетов в Excel.
Как сделать шаблон, дашборд, диаграмму или график для создания красивого отчета удобного для визуального анализа в Excel? Выбирайте примеры диаграмм с графиками для интерактивной визуализации данных с умных таблиц Excel и используйте их для быстрого принятия правильных решений. Бесплатно скачивайте готовые шаблоны динамических диаграмм для использования их в дашбордах, отчетах или презентациях.

В программе Excel специально разрабатывались диаграммы и графики для реализации визуализации данных.

Импортируйте диаграмму Excel в документ Word или презентацию PowerPoint. При изменении исходных данных она будет обновляться автоматически.

Импорт диаграммы Excel в другое приложение

  1. Откройте книгу Excel, содержащую диаграмму.

  2. Выделите диаграмму, а затем на вкладке Главная нажмите кнопку Копировать.

  3. Откройте документ Office и выберите в нем место, куда вы хотите вставить диаграмму.

  4. Выполните одно из указанных ниже действий.

    • Чтобы скопировать диаграмму как рисунок, на вкладке Главная нажмите кнопку Вставить и выберите вариант Рисунок.

    • Чтобы изменения исходных данных отражались в конечном файле, создайте связь с диаграммой Excel. Для этого на вкладке Главная нажмите кнопку Вставить и выберите вариант Использовать конечную тему и связать данные.

    • Чтобы получить возможность редактировать диаграмму в документе, внедрите ее. Для этого на вкладке Главная нажмите кнопку Вставить и выберите вариант Использовать конечную тему и внедрить книгу.

Обновление данных на импортированной диаграмме

Если документ с импортированной диаграммой открыт, изменения, вносимые в исходную диаграмму Excel, немедленно отражаются на импортированной диаграмме. Если вы изменяете данные на исходной диаграмме Excel, когда документ с импортированной диаграммой закрыт, обновите данные диаграммы при следующем открытии этого документа.

  1. Выделите диаграмму.

  2. На вкладке Конструктор нажмите кнопку Обновить данные.

Вам нужны дополнительные возможности?

Вставка диаграммы из таблицы Excel в Word

Копирование диаграммы Excel в другую программу Office

Обучение работе с Word

Обучение работе с PowerPoint

Обучение работе с Excel

Чтобы импортировать диаграмму в документ Word, создайте ее в Excel,

щелкните ее правой кнопкой мыши и выберите команду Копировать.

В конечном документе щелкните правой кнопкой мыши в нужном месте.

Выберите способ вставки: внедрить диаграмму с конечной темой или исходным форматированием

либо связать диаграмму с теми же параметрами форматирования.

Чтобы вставить диаграмму со связыванием, выберите вариант Сохранить исходное форматирование и связать данные.

Чтобы вставить диаграмму в презентацию PowerPoint, выберите тот же параметр.

Чтобы увеличить размер диаграммы, выберите ее и перейдите на вкладку Формат.

Установите флажок Сохранить пропорции.

Затем увеличьте значение в поле «Масштаб высоты» и нажмите клавишу ВВОД. Закройте меню.

Чтобы изменить положение диаграммы, наведите указатель мыши на ее край и перетащите ее.

Чтобы просмотреть стили диаграмм, откройте вкладку Конструктор. Чтобы увидеть результат применения стиля, наведите на него указатель мыши.

При изменении исходной диаграммы Excel, например ее значений,

связанная диаграмма обновляется автоматически.

Если при изменении связанной диаграммы Excel другое приложение не открыто,

откройте его и выберите диаграмму.

Затем на вкладке Конструктор нажмите кнопку Обновить данные. Теперь на связанной диаграмме отразятся изменения, внесенные в Excel.

Некоторое время назад мы опубликовали первую часть нашего самоучителя по созданию диаграмм в Excel для начинающих, в которой была дана подробная инструкция, как построить график в Excel. И самым первым вопросом, заданным в комментариях, был: «Как показать на диаграмме данные, расположенные на разных рабочих листах?«. Хочу поблагодарить читателя, задавшего этот замечательный вопрос!

В самом деле, не всегда исходные данные, которые нужно показать на диаграмме, располагаются на одном рабочем листе. К счастью, Microsoft Excel позволяет отобразить на одном графике данные, расположенные на двух и более листах. Далее мы проделаем это шаг за шагом.

  • Создаём диаграмму из нескольких листов Excel
  • Настраиваем диаграмму, созданную из нескольких рабочих листов

Содержание

  1. Как создать диаграмму из нескольких листов Excel
  2. 1. Создайте диаграмму по данным первого листа
  3. 2. Добавьте второй ряд данных с другого листа
  4. 3. Добавьте еще больше рядов данных (по желанию)
  5. 4. Настройте и улучшите диаграмму (по желанию)
  6. Создание диаграммы из итоговой таблицы
  7. Настраиваем в Excel диаграмму, созданную из нескольких рабочих листов
  8. Изменяем ряд данных при помощи диалогового окна «Выбор источника данных»
  9. Скрываем или показываем ряды данных при помощи иконки «Фильтры диаграммы»
  10. Изменяем ряд данных при помощи формулы

Как создать диаграмму из нескольких листов Excel

Предположим, что на нескольких листах Excel содержатся данные о доходе за несколько лет, и требуется построить диаграмму по этим данным, чтобы показать общую тенденцию.

1. Создайте диаграмму по данным первого листа

Откройте первый рабочий лист Excel, выделите данные, которые нужно отобразить на диаграмме, откройте вкладку Вставка (Insert) и в разделе Диаграммы (Charts) выберите нужный тип диаграммы. Для нашего примера мы выберем Объёмная гистограмма с накоплением (Stack Column).

Диаграмма в Excel по нескольким листам

2. Добавьте второй ряд данных с другого листа

Кликните по только что созданной диаграмме, чтобы на Ленте меню появилась группа вкладок Работа с диаграммами (Chart Tools), откройте вкладку Конструктор (Design) и нажмите кнопку Выбрать данные (Select Data). Или нажмите по иконке Фильтры диаграммы (Chart Filters) справа от диаграммы и в самом низу появившегося меню, кликните ссылку Выбрать данные (Select Data).

В диалоговом окне Выбор источника данных (Select Data Source) нажмите кнопку Добавить (Add).

Диаграмма в Excel по нескольким листам

Теперь добавим второй ряд данных с другого рабочего листа. Этот момент очень важен, поэтому внимательно следуйте инструкциям. После нажатия кнопки Добавить (Add) откроется диалоговое окно Изменение ряда (Edit Series), здесь нужно нажать иконку выбора диапазона рядом с полем Значения (Series values).

Диаграмма в Excel по нескольким листам

Диалоговое окно Изменение ряда (Edit Series) свернётся. Кликните по ярлычку листа, содержащего следующую часть данных, которые нужно показать на диаграмме Excel. При переключении на другой лист диалоговое окно Изменение ряда (Edit Series) останется на экране.

На втором листе выделите столбец или строку данных, которые нужно добавить на диаграмму Excel, и снова кликните по иконке выбора диапазона, чтобы диалоговое окно Изменение ряда (Edit Series) вернулось к первоначальному размеру.

Диаграмма в Excel по нескольким листам

Теперь кликните по иконке выбора диапазона рядом с полем Имя ряда (Series name) и выберите ячейку, содержащую текст, который нужно использовать в качестве имени ряда данных. Вновь кликните по иконке выбора диапазона, чтобы вернуться к первоначальному диалоговому окну Изменение ряда (Edit Series).

Проверьте ссылки, которые теперь появились в полях Имя ряда (Series name) и Значения (Series values), и нажмите ОК.

Диаграмма в Excel по нескольким листам

Как видно на рисунке выше, мы связали имя ряда с ячейкой B1, в которой содержится заголовок столбца. Вместо ссылки на заголовок столбца, можно ввести имя в виде текстовой строки, заключённой в кавычки, например:

="Второй ряд данных"

Имена рядов данных появятся в легенде диаграммы, поэтому лучше придумать осмысленные и содержательные имена. На данном этапе результат должен быть примерно таким:

Диаграмма в Excel по нескольким листам

3. Добавьте еще больше рядов данных (по желанию)

Если в диаграмме должны быть показаны данные более, чем с двух рабочих листов, то повторите предыдущий этап для каждого ряда данных, который нужно добавить на диаграмму. Когда закончите, нажмите ОК в диалоговом окне Выбор источника данных (Select Data Source).

Я для примера добавил третий ряд данных, и моя диаграмма теперь выглядит так:

Диаграмма в Excel по нескольким листам

4. Настройте и улучшите диаграмму (по желанию)

При создании диаграмм в Excel 2013 и 2016 обычно автоматически добавляются такие элементы, как название диаграммы и легенда. К нашей диаграмме, составленной из содержимого нескольких листов, название и легенда не были добавлены автоматически, но мы быстро исправим это.

Выделите диаграмму, нажмите иконку Элементы диаграммы (Chart Elements) в виде зелёного креста возле правого верхнего угла диаграммы, и отметьте галочкой нужные параметры:

Диаграмма в Excel по нескольким листам

О том, как настраивать другие параметры диаграммы, такие как отображение подписей данных или формат осей, подробно рассказано в отдельной статье о настройке диаграмм Excel.

Создание диаграммы из итоговой таблицы

Решение, показанное выше, удобно только в том случае, если данные, которые нужно отобразить на диаграмме, на всех рабочих листах выстроены в одинаковом порядке, т.е. в первой строке — Oranges, во второй — Apples и т.д. В противном случае графики превратятся в нечто неразборчивое.

В данном примере расположение данных одинаково на всех трёх листах. Если требуется построить график из гораздо больших таблиц, и нет уверенности в том, что структура данных в этих таблицах одинакова, то разумнее будет сначала создать итоговую таблицу, а уже из получившейся итоговой таблицы создавать диаграмму. Чтобы заполнить итоговую таблицу нужными данными, можно использовать функцию ВПР (VLOOKUP).

Например, если рабочие листы, о которых идёт речь в этом примере, содержат данные в разном порядке, то мы можем сделать из них итоговую таблицу при помощи вот такой формулы:

=ВПР(A3;'2014'!$A$2:$B$5;2;ЛОЖЬ)
=VLOOKUP(A3,'2014'!$A$2:$B$5,2,FALSE)

И получить вот такой результат:

Диаграмма в Excel по нескольким листам

Далее просто выбираем итоговую таблицу, открываем вкладку Вставка (Insert) и в разделе Диаграммы (Charts) выбираем нужный тип диаграммы.

Настраиваем в Excel диаграмму, созданную из нескольких рабочих листов

Может случиться так, что после завершения создания диаграммы из двух или более рабочих листов, становится ясно, что она должна быть построена по-другому. А так как создание такой диаграммы в Excel – это не такой быстрый процесс, как создание диаграммы из одного листа, то вероятно, что проще будет переделать созданную диаграмму, чем создавать новую с чистого листа.

В целом, параметры для диаграммы Excel, созданной из нескольких рабочих листов, ничем не отличаются от параметров для обычной диаграммы Excel. Можно использовать группу вкладок Работа с диаграммами (Charts Tools), или контекстное меню, или иконки настройки в правом верхнем углу диаграммы, чтобы настроить основные элементы, такие как название диаграммы, названия осей, легенду, стиль диаграммы и прочее. Пошаговые инструкции по настройке этих параметров можно найти в статье о настройке диаграмм в Excel.

Если же требуется изменить ряд данных, показанный на диаграмме, то сделать это можно одним из трёх способов:

  • Диалоговое окно «Выбор источника данных»
  • Иконка «Фильтры диаграммы»
  • Формулы рядов данных

Изменяем ряд данных при помощи диалогового окна «Выбор источника данных»

Откройте диалоговое окно Выбор источника данных (Select Data Source), для этого на вкладке Конструктор (Design) нажмите кнопку Выбрать данные (Select data).

Чтобы изменить ряд данных, кликните по нему, затем нажмите кнопку Изменить (Edit) и отредактируйте параметры Имя ряда (Series Name) или Значение (Series Values), как мы делали ранее в этой статье. Чтобы изменить порядок рядов данных на диаграмме, выделите ряд данных и переместите его вверх или вниз при помощи соответствующих стрелок.

Диаграмма в Excel по нескольким листам

Чтобы скрыть ряд данных, просто уберите галочку в списке Элементы легенды (Legend Entries) в левой части диалогового окна. Чтобы удалить ряд данных из диаграммы полностью, выделите его и нажмите кнопку Удалить (Remove).

Скрываем или показываем ряды данных при помощи иконки «Фильтры диаграммы»

Другой способ управлять рядами данных, которые отображаются на диаграмме Excel, это иконка Фильтры диаграммы (Chart Filters). Если кликнуть по диаграмме, то эта иконка тут же появится справа.

  • Чтобы скрыть данные, кликните по иконке Фильтры диаграммы (Chart Filters) и уберите галочку возле соответствующего ряда данных или категории.
  • Чтобы изменить ряд данных, нажмите кнопку Изменить ряд (Edit Series) справа от имени ряда. Появится уже знакомое диалоговое окно Выбор источника данных (Select Data Source), в котором можно сделать нужные настройки. Чтобы кнопка Изменить ряд (Edit Series) появилась, достаточно просто навести указатель мыши на имя ряда. При этом ряд данных, на который наведена мышь, выделяется на диаграмме цветом, чтобы было проще понять, какой элемент будет изменён.

Диаграмма в Excel по нескольким листам

Изменяем ряд данных при помощи формулы

Как Вы, вероятно, знаете, каждый ряд данных в Excel задан формулой. К примеру, если выделить один из рядов данных на диаграмме, которую мы только что создали, то формула ряда данных будет выглядеть вот так:

=РЯД('2013'!$B$1;'2013'!$A$2:$A$5;'2013'!$B$2:$B$5;1)
=SERIES('2013'!$B$1,'2013'!$A$2:$A$5,'2013'!$B$2:$B$5,1)

Диаграмма в Excel по нескольким листам

Каждая формула ряда данных состоит из нескольких основных элементов:

=РЯД([имя_ряда];[имя_категории];диапазон_данных;номер_ряда)

То есть наша формула может быть расшифрована так:

  • Имя ряда (‘2013’!$B$1) взято из ячейки B1 на листе 2013.
  • Имена категорий (‘2013’!$A$2:$A$5) взяты из ячеек A2:A5 на листе 2013.
  • Данные (‘2013’!$B$2:$B$5) взяты из ячеек B2:B5 на листе 2013.
  • Номер ряда (1) говорит о том, что этот ряд занимает на графике первое место.

Чтобы изменить определённый ряд данных, выделите его на диаграмме и в строке формул внесите нужные изменения. Конечно, нужно быть очень осторожным, меняя формулу ряда данных, поскольку легко допустить ошибку, особенно, если во время редактирования исходные данные содержатся на разных листах, а не перед глазами. Впрочем, если работать с формулами Вам удобнее, чем с обычным интерфейсом, то такой способ сделать небольшие исправления вполне может подойти.

На сегодня всё! Спасибо за внимание!

Оцените качество статьи. Нам важно ваше мнение:

Построение диаграммы в Microsoft Excel по таблице – основной вариант создания графиков и диаграмм другого типа, поскольку изначально у пользователя имеется диапазон данных, который и нужно заключить в такой тип визуального представления.

В Excel составить диаграмму по таблице можно двумя разными методами, о чем я и хочу рассказать в этой статье.

Способ 1: Выбор таблицы для диаграммы

Этот метод показывает, как сделать диаграмму в Excel, взяв за основу уже готовую таблицу и выделив необходимые ячейки, которые и должны попасть в сам график. Его можно назвать самым простым, поскольку от пользователя не требуется ручной ввод каждого числа и заполнение данных для того, чтобы график отобразил их на листке. Достаточно выполнить следующую инструкцию, чтобы справиться с поставленной задачей.

  1. Откройте необходимую таблицу и выделите ее, зажав левую кнопку мыши и проведя до завершения.Выбор диапазона данных для построения диаграммы по таблице в Excel

  2. Вы должны увидеть, что все ячейки помечены серым цветом, значит, можно переходить на вкладку «Вставка».Переход на вкладку Вставка для построения диаграммы по таблице в Excel

  3. Там нас интересует блок «Диаграммы», в котором можно выбрать одну из диаграмм или перейти в окно с рекомендуемыми.Кнопка добавления диаграммы для построения диаграммы по таблице в Excel

  4. Откройте вкладку «Все диаграммы» и отыщите среди типов ту, которая устраивает вас.Выбор типа диаграммы для построения диаграммы по таблице в Excel

  5. Справа отображаются виды выбранного типа графика, а при наведении курсора появляется увеличенный размер диаграммы. Дважды кликните по ней, чтобы добавить в таблицу.Выбор визуального оформления диаграммы для построения диаграммы по таблице в Excel

  6. Предыдущие действия позволили вставить диаграмму в Excel, после чего ее можно переместить по листку или изменить размер.Вставка диаграммы для построения диаграммы по таблице в Excel

  7. Дважды нажмите по названию графика, чтобы изменить его, поскольку установленное по умолчанию значение подходит далеко не всегда.Изменение названия для построения диаграммы по таблице в Excel

  8. Не забывайте о том, что дополнительные опции отображаются после клика правой кнопкой мыши по графику. Так вы можете изменить шрифт, добавить данные или вырезать объект из листа.Использование контекстного меню для построения диаграммы по таблице в Excel

  9. Для определенных типов графиков доступно изменение стилей, что отобразится на вкладке «Конструктор» сразу после добавления объекта в таблицу.Вкладка со стилями для построения диаграммы по таблице в Excel

Как видно, нет ничего сложного в том, чтобы сделать диаграмму по таблице, заранее выбрав ее на листе. В этом случае важно, чтобы все значения были указаны правильно и выбранный тип графика отображался корректно. В остальном же никаких трудностей при построении возникнуть не должно.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Способ 2: Ручной ввод данных

Преимущество этого типа построения диаграммы в Экселе заключается в том, что благодаря выполненным действиям вы поймете, как можно в любой момент расширить график или перенести в него совершенно другую таблицу. Суть метода заключается в том, что сначала составляется произвольная диаграмма, а после в нее вводятся необходимые значения. Пригодится такой подход тогда, когда уже сейчас нужно составить график на листе, а таблица со временем расширится или вовсе изменит свой формат.

  1. На листе выберите любую свободную ячейку, перейдите на вкладку «Вставка» и откройте окно со всеми диаграммами.Переход на вкладку вставка для построения диаграммы по таблице с выбором данных в Excel

  2. В нем отыщите подходящую так, как это было продемонстрировано в предыдущем методе, после чего вставьте на лист и нажмите правой кнопкой мыши в любом месте текущего значения.Успешное добавление графика для построения диаграммы по таблице в Excel

  3. Из появившегося контекстного меню выберите пункт «Выбрать данные».Кнопка выбора данных для построения диаграммы по таблице в Excel

  4. Задайте диапазон данных для диаграммы, указав необходимую таблицу. Вы можете вручную заполнить формулу с ячейками или кликнуть по значку со стрелкой, чтобы выбрать значения на листе.Выбор таблицы для построения диаграммы по таблице в Excel

  5. В блоках «Элементы легенды (ряды)» и «Подписи горизонтальной оси (категории)» вы самостоятельно решаете, какие столбы с данными будут отображаться и как они подписаны. При помощи находящихся там кнопок можно изменять содержимое, добавляя или удаляя ряды и категории.Редактирование значений для построения диаграммы по таблице в Excel

  6. Обратите внимание на то, что пока активно окно «Выбор источника данных», захватываемые значения таблицы подсвечены на листе пунктиром, что позволит не потеряться.Просмотр активной области для построения диаграммы по таблице в Excel

  7. По завершении редактирования вы увидите готовую диаграмму, которую можно изменить точно таким же образом, как это было сделано ранее.Успешное редактирование для построения диаграммы по таблице в Excel

Вам остается только понять, как сделать диаграмму в Excel по таблице проще или удобнее конкретно в вашем случае. Два представленных метода подойдут в совершенно разных ситуациях и в любом случае окажутся полезными, если вы часто взаимодействуете с графиками во время составления электронных таблиц. Следуйте приведенным инструкциям, и все обязательно получится!

Время на прочтение
7 мин

Количество просмотров 8.9K

Доброго времени суток, уважаемые Хабровчане.

Я — начинающий разработчик SharePoint, и сегодня хотелось бы рассказать о решении одной интересной задачи. Нужно было сделать веб-часть для SharePoint, которая должна обрабатывать таблицу с данными, выводить график на экран, а так же уметь экспортировать таблицу и график в Microsoft Excel. Под катом мой способ решения, отрывки кода веб-части и ссылка на проект.

Теоретическое решение

1. Построение графика на странице.

Удобнее всего это делать с помощью MS Chart Control. Сам процесс достаточно прост (хотя, конечно, зависит от необходимого Вам вида графика). Единственное требование: первый столбец в таблице — это значения для оси X на графике.

2. Экспорт таблицы в Excel

Существует достаточно много способов экспорта, но я решил воспользоваться самым простым (на мой взгляд). Как известно, в Office 2007/2010 для файлов .docx, .xlsx, pptx используется формат Open XML, то есть эти файлы представляют из себя простой ZIP-архив с XML-файлами. Работать с ZIP-архивами просто, и таким образом можно записать данные напрямую в XML-файлы.
Однако оказалось, что записать табличку с названиями столбцов не так то просто. Excel записывает цифровые поля напрямую в sheet1.xml, а текстовые поля записывает в sharedStrings.xml, и в sheet1.xml идут только ссылки на них. К счастью, я нашел замечательный проект, который и реализует запись текстовых значений в xlsx-файл.

3. Экспорт графика в Excel

Естественно, простая вставка картинки с графиком не подойдет, это должен быть настоящий Excel’евский график. Гугл не подсказал мне ничего стоящего — либо не подходит, либо слишком сложно. Немного поработав c графиками в Excel’е, я заметил интересную особенность — если задать области данных, из которых график будет брать значения, а потом менять значение ячейки — график меняется автоматически. Идея пришла сама собой — создать пустой файл с графиком, затем записывать в него таблицу, потом так же с помощью редактирования XML указывать области данных для графика (в настоящем проекте у меня была динамическая таблица, поэтому размеры вычислялись в коде).

Практическое решение

Для примера я решил создать простую веб-часть с табличкой, двумя кнопками и графиком (изначально он скрыт). Так как нам нужно будет экспортировать названия столбцов таблицы, то необходимо вписать их первой строкой, и отключить ShowHeader.

DataTable dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 4;i++ )
                dt.Columns.Add();
            dt.Rows.Add(new string[] { "Номер недели", "Печеньки", "Чай", "Сахар" });
            dt.Rows.Add(new string[] { "1", "17", "5", "8" });
            dt.Rows.Add(new string[] { "2", "18", "4", "10" });
            dt.Rows.Add(new string[] { "3", "15", "6", "9" });
            dt.Rows.Add(new string[] { "4", "19", "7", "10" });
            dt.Rows.Add(new string[] { "5", "13", "4", "7" });
            GridView1.DataSource = dt;
            GridView1.DataBind();
            GridView1.Width = 300;
            GridView1.ShowHeader = false;
        }

Теперь делаем вывод графика. Учитываем, что данные начинаются со 2-й строки, а 1-й столбец — это значения для оси X.

            Series[] series = new Series[dt.Columns.Count - 1];
            for (int i = 0; i < series.Length; i++)
            {
                series[i] = new Series(dt.Columns[i + 1].ColumnName);
                series[i].ChartType = SeriesChartType.Column;
                for (int k = 1; k < dt.Rows.Count; k++)
                    series[i].Points.AddXY((double.Parse((string)dt.Rows[k][0])), double.Parse((string)dt.Rows[k][i + 1]));
                Chart1.Series.Add(series[i]);
            }
            ChartArea chartArea = new ChartArea();
            chartArea.AxisX.Minimum = double.Parse(dt.Rows[1][0].ToString());
            chartArea.AxisX.Maximum = double.Parse(dt.Rows[dt.Rows.Count - 1][0].ToString());
            Chart1.ChartAreas.Add(chartArea);
            Chart1.Width = 300;
            Chart1.Visible = true;

Приступим к экспорту. Первое что понадобится — шаблон (пустой файл с графиком). Создаем в Excel новую книгу, вставляем график, указываем области данных. Сохраняем, закрываем. Можно немного отредактировать напрямую через xml — удалить кэшированные значения, если таблица не фиксированного размера — то в качестве областей данных можно подставить свои числа (я так схитрил — потом просто через Replace заменяю эти числа на необходимые). Шаблон надо закинуть в корневую папку узла Sharepoint.
Используя вышеупомянутый проект, дорабатываем его под наши цели — сначала создадим копию 1й строки таблицы (названия столбцов). С помощью HashTable создадим ссылки на эти текстовые данные, а сами данные запишем в sharedStrings.xml.

public static ArrayList CreateStringTables(DataTable data, out Hashtable lookupTable)
        {
            ArrayList stringTable = new ArrayList();
            lookupTable = new Hashtable();

            foreach (DataRow row in data.Rows)
                foreach (DataColumn column in data.Columns)
                    if (column.DataType == typeof(string))
                    {
                        string val = (string)row[column];
                        if (!lookupTable.Contains(val))
                        {
                            lookupTable.Add(val, stringTable.Count);
                            stringTable.Add(val);
                        }
                    }
            return stringTable;
        }
        public static void WriteStringTable(Stream output, ArrayList stringTable)
        {
            using (XmlTextWriter writer = new XmlTextWriter(output, Encoding.UTF8))
            {
                writer.WriteStartDocument(true);
                writer.WriteRaw("<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="" + stringTable.Count.ToString() + "" uniqueCount="" + stringTable.Count.ToString() + "">");
                foreach (string str in stringTable)
                {
                    writer.WriteRaw("<si><t>" + str + "</t></si>");
                }
                writer.WriteRaw("</sst>");
            }
        }

Теперь преобразуем таблицу данных в xml-код, попутно вставляя ссылки на текстовые данные. Записываем все в файл sheet1.xml.

public static void WriteWorksheetData(XmlTextWriter writer, DataTable dt, Hashtable lookupTable)
        {
            int rowsCount = dt.Rows.Count;
            int columnsCount = dt.Columns.Count;
            string relPos = RowIndexToName(0);
            writer.WriteRaw("<row r="" + relPos + "" spans="1:" + columnsCount.ToString()+"">");
            for (int column = 0; column < columnsCount; column++)
            {
                relPos = RowColumnToPosition(0, column);
                writer.WriteRaw("<c r="" + relPos + "" t="s">");
                string val = lookupTable[dt.Rows[0][column]].ToString();
                writer.WriteRaw("<v>" + val + "</v>");
                writer.WriteRaw("</c>");
            }
            writer.WriteRaw("</row>");
            for (int row = 1; row < rowsCount; row++)
            {
                relPos = RowIndexToName(row);
                writer.WriteRaw("<row r="" + relPos + "" spans="1:" + columnsCount.ToString() + "">");
                for (int column = 0; column < columnsCount; column++)
                {
                    relPos = RowColumnToPosition(row, column);
                    writer.WriteRaw("<c r="" + relPos + "">");
                    string val = dt.Rows[row][column].ToString();
                    writer.WriteRaw("<v>" + val + "</v>");
                    writer.WriteRaw("</c>");
                }
                writer.WriteRaw("</row>");
            }
        }
public static void WriteWorksheet(Stream output, DataTable dt, Hashtable lookupTable)
        {
            using (XmlTextWriter writer = new XmlTextWriter(output, Encoding.UTF8))
            {
                writer.WriteStartDocument(true);
                writer.WriteRaw("<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">");
                string lastCell = RowColumnToPosition(dt.Rows.Count - 1, dt.Columns.Count - 1);
                writer.WriteRaw("<dimension ref="A1:" + lastCell + "" />");
                writer.WriteRaw("<sheetViews>");
                writer.WriteRaw("<sheetView tabSelected="1" workbookViewId="0" />");
                writer.WriteRaw("</sheetViews>");
                writer.WriteRaw("<sheetFormatPr defaultRowHeight="15" />");
                writer.WriteRaw("<sheetData>");
                WriteWorksheetData(writer, dt, lookupTable);
                writer.WriteRaw("</sheetData>");
                writer.WriteRaw("<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3" />");
                writer.WriteRaw("<drawing r:id="rId1" />");
                writer.WriteRaw("</worksheet>");
            }
        }

Осталось не забыть изменить области данных. Так как в начально проекте у меня могло быть не более пяти столбцов — я создал шаблон с пятью столбцами, а потом удалял лишние. Кол-во строк рассчитывается просто из таблицы.

public static void FieldEdit(Stream xmlFile, int rowsCount, int columnsCount)
        {
            XmlDocument document = new XmlDocument();
            document.Load(xmlFile);
            XmlNodeList xmlColumns = document.GetElementsByTagName("c:ser");
            XmlNode xmlChart = xmlColumns[0].ParentNode;
            for (int i = xmlColumns.Count - 1; i > columnsCount - 2; i--)
                xmlColumns[i].ParentNode.RemoveChild(xmlColumns[i]);
            XmlNodeList xmlRows = document.GetElementsByTagName("c:f");
            for (int i = 0; i < xmlRows.Count; i++)
                xmlRows[i].InnerText = xmlRows[i].InnerText.Replace("15", rowsCount.ToString());
            MemoryStream ms = new MemoryStream();
            document.Save(ms);
            xmlFile.SetLength(ms.Length);
            xmlFile.Position = 0;
            document.Save(xmlFile);
            ms.Close();
        }

И вот наш файл готов! Выдаем его пользователю для сохранения/загрузки с помощью HttpContext.Current.Response.

public static void SendContent(byte[] fileContent, string outFileName)
        {
            HttpContext.Current.Response.ClearContent();
            HttpContext.Current.Response.AddHeader("Content-Type", "application/force-download");
            HttpContext.Current.Response.AddHeader("Content-Disposition", String.Format("attachment; filename={0}", outFileName.Replace(" ", "_")));
            HttpContext.Current.Response.AddHeader("Content-Length", fileContent.Length.ToString());
            HttpContext.Current.Response.OutputStream.Write(fileContent, 0, fileContent.Length);
            HttpContext.Current.Response.OutputStream.Flush();
            HttpContext.Current.Response.OutputStream.Close();
            HttpContext.Current.Response.Flush();
            HttpContext.Current.ApplicationInstance.CompleteRequest();
        }

Я не стал публиковать здесь весь код — он слишком большой, и весь проект (с подробными комментариями и пустым шаблоном) можно скачать здесь.

Примечания:

  • Изначально проект делался для SP2007 в VS2008, и портировался на 2010 специально для Хабра. Поэтому использованы не все возможности 2010 версии.
  • Код написан как пример, максимально просто, без ненужных (в данном случае) try-catch и т.д. Главное было показать идею, а не реализацию.
  • Этот способ можно использовать не только с SharePoint, но это наиболее часто встречающаяся связка с Excel.
  • Я только учусь, так что с удовольствием выслушаю Ваши советы и указания на мои ошибки.

Спасибо за внимание.

Понравилась статья? Поделить с друзьями:
  • Файл восстановления excel 2007
  • Файл возраст excel скачать
  • Файл взламывающий пароли excel
  • Файл в формате word скачать бесплатно
  • Файл в формате ms word это как