Невозможно создать отчет о диаграмме по двойной оси Y в Excel с использованием NPOI 2.6.2 и C#.C#

Место общения программистов C#
Ответить
Гость
 Невозможно создать отчет о диаграмме по двойной оси Y в Excel с использованием NPOI 2.6.2 и C#.

Сообщение Гость »


Я не могу создать отчет о диаграмме в Excel со вторичной осью Y. Ниже приведен код, который я уже разработал для первичной оси Y, но мое требование состоит в том, чтобы создать также вторичную ось Y, чего невозможно достичь с помощью NPOI. . Не могли бы вы помочь мне выполнить это требование, а также подсказать, как его достичь с помощью приведенного ниже кода.

введите здесь описание изображения

с использованием NPOI.SS.UserModel; использование NPOI.SS.UserModel.Charts; использование NPOI.XSSF.UserModel; использование System.IO; используя NPOI.SS.Util; использование Newtonsoft.Json; частный недействительный GenerateSingleAxisReport () {попробуйте {книга IWorkbook = новый XSSFWorkbook (); Лист ISheet = workbook.CreateSheet("Профиль"); // Пример данных для диаграммы // Заменяем jsonText фактической строкой JSON string jsonText = File.ReadAllText("C:\GIT\WpfApp1\WpfApp1\file1.json"); лист.CreateRow(0).CreateCell(0).SetCellValue("Время"); лист.GetRow(0).CreateCell(1).SetCellValue("Подача W"); лист.GetRow(0).CreateCell(2).SetCellValue("Фракция уровня V1"); лист.GetRow(0).CreateCell(3).SetCellValue("Температура T1"); лист.GetRow(0).CreateCell(4).SetCellValue("T1 Vapor"); List dataRecords = JsonConvert.DeserializeObject(jsonText);

// Теперь вы можете получить доступ к данным интервал я = 1; foreach (запись var в dataRecords) { лист.CreateRow(i).CreateCell(0).SetCellValue(record.Time); лист.GetRow(i).CreateCell(1).SetCellValue(record.FeedW); лист.GetRow(i).CreateCell(2).SetCellValue(record.V1LevelFraction); лист.GetRow(i).CreateCell(3).SetCellValue(record.T1Temperature); лист.GetRow(i).CreateCell(4).SetCellValue(record.T1Vapor); я++; } IDrawing патриарх = лист.CreateDrawingPatriarch(); IClientAnchor якорь = patriarch.CreateAnchor(0, 0, 0, 0, 6, 0, 15, 15); Диаграмма IChart = patriarch.CreateChart(anchor); // Добавляем заголовок к диаграмме chart.SetTitle("Объединенная диаграмма трендов"); // Устанавливаем здесь заголовок Легенда IChartLegend =chart.GetOrCreateLegend(); легенда.Позиция = ЛегендаПозиция.Низ; // Диаграмма рассеяния IScatterChartData data =chart.ChartDataFactory.CreateScatterChartData(); // Используйте ось категорий в качестве нижней оси. IChartAxis BottomAxis = диаграмма.ChartAxisFactory.CreateCategoryAxis(AxisPosition.Bottom); IValueAxis leftAxis = диаграмма.ChartAxisFactory.CreateValueAxis(AxisPosition.Left); leftAxis.Crosses = AxisCrosses.AutoZero; // Серия 1 IChartDataSource xs1 = DataSources.FromNumericCellRange(лист, новый CellRangeAddress(0, 60, 0, 0)); IChartDataSource ys1 = DataSources.FromNumericCellRange(лист, новый CellRangeAddress(0, 60, 1, 1)); IScatterChartSeries series1 = data.AddSeries(xs1, ys1); series1.SetTitle("Фракция уровня V1"); // Серия 2 IChartDataSource xs2 = DataSources.FromNumericCellRange(лист, новый CellRangeAddress(0, 60, 0, 0)); IChartDataSource ys2 = DataSources.FromNumericCellRange(лист, новый CellRangeAddress(0, 60, 2, 2)); IScatterChartSeries series2 = data.AddSeries(xs2, ys2); series2.SetTitle("Температура T1 C"); диаграмма.Plot(данные, нижняя ось, левая ось); используя (поток FileStream = новый FileStream("BasicLineChartReport.xlsx", FileMode.Create, FileAccess.Write)) { рабочая книга.Write(поток); } MessageBox.Show("Отчет Excel создан успешно."); } поймать (Исключение ex) { MessageBox.Show($"Ошибка создания отчета диаграммы Excel: {ex.Message}", "Error", MessageBoxButton.OK, MessageBoxImage.Error); }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»