Диаграмма
Добавить диаграмму
func (f *File) AddChart(sheet, cell string, chart *ChartOptions, combo ...*ChartOptions) error
AddChart предоставляет метод добавления диаграммы на листе с помощью заданного набора формата диаграммы (например, смещение, масштаб, настройка соотношения сторон и параметры печати) и набор свойств.
Ниже показано Type диаграммы, поддерживаемый excelize:
| ID | перечисление | Диаграмма |
|---|---|---|
| 0 | Area | 2D диаграмма области |
| 1 | AreaStacked | 2D диаграмма области с накоплением |
| 2 | AreaPercentStacked | 2D 100% диаграмма области с накоплением |
| 3 | Area3D | 3D диаграмма области |
| 4 | Area3DStacked | 3D диаграмма области с накоплением |
| 5 | Area3DPercentStacked | 3D 100% диаграмма области с накоплением |
| 6 | Bar | 2D кластерная гистограмма |
| 7 | BarStacked | 2D Двухстрочная гистограмма |
| 8 | BarPercentStacked | 2D 100% сложная гистограмма |
| 9 | Bar3DClustered | 3D кластерная гистограмма |
| 10 | Bar3DStacked | 3D гистограмма |
| 11 | Bar3DPercentStacked | 3D 100% сложная гистограмма |
| 12 | Bar3DConeClustered | 3D конус кластерных диаграммы бар |
| 13 | Bar3DConeStacked | 3D конус штабелироваться диаграммы бар |
| 14 | Bar3DConePercentStacked | 3D 100% диаграмма конусной панели |
| 15 | Bar3DPyramidClustered | 3D пирамида кластерных диаграмма бара |
| 16 | Bar3DPyramidStacked | 3D пирамиды сложены диаграммы бар |
| 17 | Bar3DPyramidPercentStacked | 3D 100% пирамиды сложены диаграммы бар |
| 18 | Bar3DCylinderClustered | 3D цилиндровый кластерный бар диаграммы |
| 19 | Bar3DCylinderStacked | 3D цилиндр штабелироваться бар диаграммы |
| 20 | Bar3DCylinderPercentStacked | 3D 100% цилиндр штабелироваться бар диаграммы |
| 21 | Col | 2D группированная диаграмма столбцов |
| 22 | ColStacked | 2D сложены диаграммы колонки |
| 23 | ColPercentStacked | 2D 100% сложены диаграммы колонки |
| 24 | Col3D | 3D диаграмма столбца |
| 25 | Col3DClustered | 3D группированная диаграмма столбцов |
| 26 | Col3DStacked | 3D сложены диаграммы колонки |
| 27 | Col3DPercentStacked | 3D 100% сложены диаграммы колонки |
| 28 | Col3DCone | 3D Диаграмма столбца конуса |
| 29 | Col3DConeClustered | 3D конус кластерных диаграмма столбца |
| 30 | Col3DConeStacked | 3D конус штабелироваться диаграммы колонки |
| 31 | Col3DConePercentStacked | 3D 100% конус штабелироваться диаграммы колонки |
| 32 | Col3DPyramid | 3D диаграмма столбца пирамиды |
| 33 | Col3DPyramidClustered | 3D пирамида кластерных диаграмма столбца |
| 34 | Col3DPyramidStacked | 3D пирамида сложены диаграммы колонки |
| 35 | Col3DPyramidPercentStacked | 3D 100% пирамиды сложены диаграммы столбца |
| 36 | Col3DCylinder | 3D диаграмма цилиндрической колонки |
| 37 | Col3DCylinderClustered | 3D цилиндр кластерных столбцов диаграммы |
| 38 | Col3DCylinderStacked | 3D цилиндр штабелироваться диаграммы колонки |
| 39 | Col3DCylinderPercentStacked | 3D 100% цилиндр штабелироваться диаграммы колонки |
| 40 | Doughnut | диаграмма пончика |
| 41 | Line | линейный график |
| 42 | Line3D | 3D линейный график |
| 43 | Pie | круговая диаграмма |
| 44 | Pie3D | 3D круговая диаграмма |
| 45 | PieOfPie | Двойная круговая диаграмма |
| 46 | BarOfPie | Гистограмма круговой диаграммы |
| 47 | Radar | радиолокационная карта |
| 48 | Scatter | диаграмма рассеяния |
| 49 | Surface3D | 3D поверхностная диаграмма |
| 50 | WireframeSurface3D | 3D диаграмма поверхности проволоки |
| 51 | Contour | контурная диаграмма |
| 52 | WireframeContour | диаграмма контура каркасной проволоки |
| 53 | Bubble | пузырь диаграммы |
| 54 | Bubble3D | 3D пузырь диаграммы |
| 55 | StockHighLowClose | График акций Высокий-Низкий-Закрытие |
| 56 | StockOpenHighLowClose | График акций Открытие-Закрытие-Максимум-Минимум |
В области данных диаграммы Office Excel Series определяет набор информации, для которой данные рисовать, легенда пункт (серии), и горизонтальной (категория) метки оси.
Параметры Series, которые могут быть установлены:
| Параметр | Объяснение |
|---|---|
| Name | Элемент легенды (серия), отображаемый в легенде диаграммы и в строке формул. Параметр Name является необязательным. Если вы не укажете это значение, по умолчанию будет Series 1 .. n. Name для представления формул, например: Sheet1!$A$1. |
| Categories | Горизонтальная (категория) метка оси. Параметр Categories является необязательным в большинстве типов диаграмм, по умолчанию это непрерывная последовательность формы 1..n. |
| Values | Область данных диаграммы, которая является наиболее важным параметром в Series, является единственным обязательным параметром при создании диаграммы. Этот параметр связывает диаграмму с отображаемыми данными листа. |
| Fill | Устанавливает формат заполнения ряда данных. |
| Legend | Задаёт шрифт текста легенды для ряда данных. Свойство Legend необязательно. |
| Line | Устанавливает формат линии графика. Свойство Line является необязательным, и если оно не указано, оно будет использовать стиль по умолчанию. Параметры, которые можно установить, это ширина. Диапазон Width составляет 0.25pt - 999pt. Если значение ширины находится за пределами диапазона, ширина линии по умолчанию составляет 2pt. |
| Marker | Это устанавливает маркер линейной диаграммы и точечной диаграммы. Диапазон необязательного поля Size составляет от 2 до 72 (значение по умолчанию 5). Значением перечисления необязательного поля Symbol являются (значение по умолчанию - auto): circle, dash, diamond, dot, none, picture, plus, square, star, triangle, x, auto. |
| DataLabelPosition | Это задает положение метки данных серии диаграммы. |
| DataPoint | Задаёт формат отдельных точек данных в серии кольцевых, круговых или трёхмерных круговых диаграмм. Свойство DataPoint необязательно. |
Задайте свойства легенды диаграммы. Возможные параметры:
| Параметр | Тип | Объяснение |
|---|---|---|
| Position | string |
Позиция легенды диаграммы |
| ShowLegendKey | bool |
Задайте ключи легенды, которые будут отображаться в метках данных |
| Font | Font |
Задайте свойства шрифта для текста легенды диаграммы. Доступные для настройки свойства совпадают со свойствами объекта шрифта, используемого для форматирования ячеек. Можно задать семейство шрифтов, размер, цвет, полужирное начертание, курсив, подчёркивание и зачеркивание |
Установите Position легенды диаграммы. Положение легенды по умолчанию - right. Доступные позиции:
| Параметр | Объяснение |
|---|---|
| none | Выключить легенду |
| top | верх |
| bottom | дно |
| left | оставил |
| right | правильно |
| top_right | в правом верхнем углу |
Задайте свойства заголовка диаграммы с помощью поля Title, имеющего тип данных ChartTitle. Можно задать следующие свойства:
| Параметр | Тип | Объяснение |
|---|---|---|
| Fill | Fill |
Задайте цвет заливки заголовка диаграммы. Свойство Fill является необязательным. |
| Border | LineOptions |
Задайте границу заголовка диаграммы; параметры, которые можно задать, аналогичны параметрам объекта границы, используемого для форматирования ячеек. Свойство Border является необязательным. |
| Paragraph | []RichTextRun |
Задайте форматированный текст заголовка диаграммы. Свойство Paragraph является необязательным и не может быть задано одновременно со свойством Formula. |
| Font | *Font |
Задайте свойства шрифта для текста формулы заголовка диаграммы. Свойство Font является необязательным. |
| Formula | string |
Задайте формулу для текста заголовка диаграммы. Например: Sheet1!$A$1. Свойство Formula является необязательным и не может быть задано одновременно со свойством Paragraph. |
| OffsetX | int |
Задайте горизонтальное смещение заголовка диаграммы. Свойство OffsetX является необязательным. Значение по умолчанию — 0, и значение OffsetX должно быть целым числом от 0 до 100. |
| OffsetY | int |
Задайте вертикальное смещение заголовка диаграммы. Свойство OffsetY является необязательным. Значение по умолчанию — 0, и значение OffsetY должно быть целым числом от 0 до 100. |
| Width | int |
Задайте ширину заголовка диаграммы. Свойство Width является необязательным. Значение по умолчанию — 0, а значение Width должно быть целым числом от 0 до 100. |
| Height | int |
Задайте высоту заголовка диаграммы. Свойство Height является необязательным. Значение по умолчанию — 0, и значение Height должно быть целым числом от 0 до 100. |
| Overlay | bool |
Укажите заголовок диаграммы, который будет наложен на диаграмму. Свойство Overlay является необязательным. Значение по умолчанию — false. |
Название диаграммы задается путем выбора параметра Name объекта Title, и заголовок будет отображаться над диаграммой. Параметр Name поддерживает использование представлений формул, таких как Sheet1!$A$1, если вы не укажете заголовок значка, значение по умолчанию равно null.
Параметр ShowBlanksAs предоставляет настройку «Скрыть и пустые ячейки». Значение по умолчанию: gap т.е. «пустая ячейка отображается как»: «пространство». Ниже приведены необязательные значения для этого параметра:
| Параметр | Объяснение |
|---|---|
| gap | пространство |
| span | Соединить точки данных с прямыми линиями |
| zero | нулевое значение |
Задайте легенду диаграммы для всех рядов данных с помощью свойства Legend. Свойство Legend необязательно.
Установите размер пузырька во всех рядах данных для пузырьковой диаграммы или трехмерной пузырьковой диаграммы с помощью свойства BubbleSizes. Свойство BubbleSizes является необязательным. Ширина по умолчанию — 100. Это значение должно быть больше 0 и меньше или равно 300.
Установите размер кольцевого отверстия во всех рядах данных кольцевой диаграммы с помощью свойства HoleSize. Свойство HoleSize является необязательным. Ширина по умолчанию — 75, значение должно быть больше 0 и меньше или равно 90.
Указывает, что каждый маркер данных в серии имеет различный цвет на VaryColors. Значение по умолчанию является true.
Параметр Format предоставляет параметры для таких параметров, как смещение графика, масштаб, параметры соотношения сторон и свойства печати, а также те, которые используются в функции AddPicture.
Задайте свойства области построения диаграммы с помощью поля PlotArea с типом данных ChartPlotArea. Можно задать следующие свойства:
| Параметр | Тип | По умолчанию | Объяснение |
|---|---|---|---|
| SecondPlotValues | int |
0 |
Указывает значения на втором графике для диаграмм PieOfPie и BarOfPie. |
| ShowBubbleSize | bool |
false |
Указывает, что размер пузырька должен быть указан на метке данных. |
| ShowCatName | bool |
true |
Указывает, что название категории должно отображаться в метке данных. Свойство ShowCatName необязательно. |
| ShowDataTable | bool |
false |
Используется для добавления таблицы данных под диаграмму в зависимости от типа диаграммы; доступно только для диаграмм с областями, полосами, столбцами и линейными рядами. |
| ShowDataTableKeys | bool |
false |
Используется для добавления ключа легенды в таблицу данных. Работает только при включённом ShowDataTable. Свойство ShowDataTableKeys необязательно. |
| ShowLeaderLines | bool |
false |
Указывает, что линии выноски должны отображаться для подписей данных. Свойство ShowLeaderLines необязательно.Указывает, что линии выноски должны отображаться для подписей данных. Свойство ShowLeaderLines необязательно. |
| ShowPercent | bool |
false |
Указывает, что процент отображается в метке данных. |
| ShowSerName | bool |
false |
Указывает, что имя серии должно отображаться в метке данных. |
| ShowVal | bool |
false |
Указывает, что значение должно отображаться на метке данных. |
| Fill | Fill |
N/A | Установить цвет заливки диаграммы. |
| UpBars | ChartUpDownBar |
N/A | Задаёт формат восходящих столбцов биржевого графика. Свойство UpBars необязательно. |
| DownBars | ChartUpDownBar |
N/A | Задаёт формат нисходящих полос биржевого графика. Свойство DownBars необязательно. |
| NumFmt | ChartNumFmt |
N/A | Указывает, что если он связан с источником и устанавливает код пользовательского числового формата для меток данных. Свойство NumFmt является необязательным. Код формата по умолчанию — General. |
Задайте основные параметры горизонтальной и вертикальной оси с помощью XAxis и YAxis.
Свойства XAxis, которые можно установить:
| Параметр | Тип | По умолчанию | Объяснение |
|---|---|---|---|
| None | bool |
false |
Отключить оси. |
| DropLines | bool |
false |
Задает линии отступа для двумерных и трехмерных площадных и линейных диаграмм. Линии отступа — это вертикальные линии, соединяющие точки данных на диаграмме с горизонтальной (категорийной) осью. Они часто используются в линейных или площадных диаграммах, чтобы упростить определение точного положения каждой точки в зависимости от категории. Свойство DropLines является необязательным. |
| HighLowLines | bool |
false |
Задает линии максимума и минимума для двухмерного линейного графика. Линии максимума и минимума отображаются по умолчанию на графиках акций. Они простираются от наивысшего значения до наинизшего значения в каждой категории. Свойство HighLowLines является необязательным. |
| MajorGridLines | bool |
false |
Определяет основные линии сетки. |
| MinorGridLines | bool |
false |
Определяет второстепенные линии сетки. |
| TickLabelSkip | int |
1 |
Определяет, сколько тиковых меток пропустить между нарисованными метками. Свойство TickLabelSkip является необязательным. Значением по умолчанию является авто. |
| ReverseOrder | bool |
false |
Указывает, что категории или значения в обратном порядке (ориентация диаграммы). Свойство ReverseOrder является необязательным. |
| Maximum | *float64 |
0 |
Указывает, что фиксированный максимум 0 автоматически. Максимальное свойство необязательно. |
| Minimum | *float64 |
0 |
Указывает, что фиксированный минимум 0 является авто. Минимальное свойство необязательно. Значение по умолчанию автоматически. |
| Alignment | Alignment |
N/A | Указывает, что выравнивание горизонтальной и вертикальной оси. Свойства шрифта, которые можно задать: TextRotation и Vertical |
| Font | Font |
Н/Д | Указывает, что шрифт горизонтальной оси. |
| NumFmt | ChartNumFmt |
Н/Д | Указывает, что если он связан с источником и устанавливает код пользовательского числового формата для оси. |
| Title | []RichTextRun |
Н/Д | Указывает, что основной заголовок горизонтальной оси и размер диаграммы. |
Свойства YAxis, которые можно установить:
| Параметр | Тип | По умолчанию | Объяснение |
|---|---|---|---|
| None | bool |
false |
Отключить оси. |
| MajorGridLines | bool |
false |
Определяет основные линии сетки. |
| MinorGridLines | bool |
false |
Определяет второстепенные линии сетки. |
| MajorUnit | float64 |
0 |
Определяет расстояние между основными тиками. Должен содержать положительное число с плавающей точкой. Свойство MajorUnit является необязательным. Значением по умолчанию является авто. |
| ReverseOrder | bool |
false |
Указывает, что категории или значения в обратном порядке (ориентация диаграммы). Свойство ReverseOrder является необязательным. |
| Maximum | *float64 |
0 |
Указывает, что фиксированный максимум 0 автоматически. Максимальное свойство необязательно. |
| Minimum | *float64 |
0 |
Указывает, что фиксированный минимум 0 является авто. Минимальное свойство необязательно. Значение по умолчанию автоматически. |
| Alignment | Alignment |
N/A | Указывает, что выравнивание горизонтальной и вертикальной оси. Свойства шрифта, которые можно задать: TextRotation и Vertical |
| Font | Font |
Н/Д | Указывает, что шрифт вертикальной оси. |
| LogBase | float64 |
Н/Д | Задает базовый номер логарифмической шкалы вертикальной оси. |
| NumFmt | ChartNumFmt |
Н/Д | Указывает, что если он связан с источником и устанавливает код пользовательского числового формата для оси. |
| Title | []RichTextRun |
Н/Д | Указывает, что основной заголовок вертикальной оси и размер диаграммы. |
Значение TextRotation может быть установлено в диапазоне от -90 до 90.
Можно задать следующие значения Vertical: horz, vert, vert270, wordArtVert, eaVert, mongolianVert и wordArtVertRtl.
Установите размер диаграммы по свойству Dimension. Свойство измерения необязательно. Свойства, которые могут быть установлены:
| Параметр | Тип | По умолчанию | Объяснение |
|---|---|---|---|
| Height | uint |
260 | Высота |
| Width | uint |
480 | Ширина |
Параметр combo определяет создание диаграммы, которая объединяет два или более типов диаграммы в одну диаграмму. Например, создайте кластеризованную столбчатую диаграмму с данными Sheet1!$E$1:$L$15:
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
f := excelize.NewFile()
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
if err := f.SetSheetName("Sheet1", "Лист1"); err != nil {
fmt.Println(err)
return
}
for idx, row := range [][]interface{}{
{nil, "Яблоко", "Апельсин", "Груша"},
{"Маленький", 2, 3, 3},
{"Нормальный", 5, 2, 4},
{"Большой", 6, 7, 8},
} {
cell, err := excelize.CoordinatesToCellName(1, idx+1)
if err != nil {
fmt.Println(err)
return
}
if err := f.SetSheetRow("Лист1", cell, &row); err != nil {
fmt.Println(err)
return
}
}
enable, disable := true, false
if err := f.AddChart("Лист1", "E1", &excelize.Chart{
Type: excelize.Col,
Series: []excelize.ChartSeries{
{
Name: "Лист1!$A$2",
Categories: "Лист1!$B$1:$D$1",
Values: "Лист1!$B$2:$D$2",
},
},
Format: excelize.GraphicOptions{
ScaleX: 1,
ScaleY: 1,
OffsetX: 15,
OffsetY: 10,
PrintObject: &enable,
LockAspectRatio: false,
Locked: &disable,
},
Title: excelize.ChartTitle{
Paragraph: []excelize.RichTextRun{
{
Text: "2D группированная диаграмма столбцов - линейный график",
},
},
},
Legend: excelize.ChartLegend{
Position: "left",
},
PlotArea: excelize.ChartPlotArea{
ShowCatName: false,
ShowLeaderLines: false,
ShowPercent: true,
ShowSerName: true,
ShowVal: true,
},
}, &excelize.Chart{
Type: excelize.Line,
Series: []excelize.ChartSeries{
{
Name: "Лист1!$A$4",
Categories: "Лист1!$B$1:$D$1",
Values: "Лист1!$B$4:$D$4",
Marker: excelize.ChartMarker{
Symbol: "none", Size: 10,
},
},
},
Format: excelize.GraphicOptions{
ScaleX: 1,
ScaleY: 1,
OffsetX: 15,
OffsetY: 10,
PrintObject: &enable,
LockAspectRatio: false,
Locked: &disable,
},
Legend: excelize.ChartLegend{
Position: "right",
},
PlotArea: excelize.ChartPlotArea{
ShowCatName: false,
ShowLeaderLines: false,
ShowPercent: true,
ShowSerName: true,
ShowVal: true,
},
}); err != nil {
fmt.Println(err)
return
}
// Сохранить workbook
if err := f.SaveAs("Книга1.xlsx"); err != nil {
fmt.Println(err)
}
}
Добавить лист диаграммы
func (f *File) AddChartSheet(sheet string, chart *ChartOptions, combo ...*ChartOptions) error
AddChartSheet предоставляет метод для создания листа диаграммы по заданному набору формата диаграммы (например, смещение, масштаб, настройка соотношения сторон и настройки печати) и набору свойств. В Excel лист диаграммы - это рабочий лист, который содержит только диаграмму.
Удалить диаграмму
func (f *File) DeleteChart(sheet, cell string) error
DeleteChart предоставляет функцию для удаления диаграммы в XLSX по заданному рабочему листу и имени ячейки.