1 и 3 все супер, но 2..........
This commit is contained in:
parent
1980650439
commit
e15e9c2088
@ -45,6 +45,10 @@ namespace COPWinForms
|
||||
}
|
||||
public void CreateWordText(TextWord textWord)
|
||||
{
|
||||
if (string.IsNullOrEmpty(textWord.FilePath) || string.IsNullOrEmpty(textWord.DocumentTitle) || !CheckData(textWord.TextData))
|
||||
{
|
||||
throw new Exception("Не все данные заполнены");
|
||||
}
|
||||
// Создание документа
|
||||
Document document = new Document();
|
||||
DocumentBuilder builder = new DocumentBuilder(document);
|
||||
|
@ -25,16 +25,16 @@ namespace COPWinForms
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void CreateTable(string filePath, string documentTitle, List<ColumnDefinition> columnDefinitions, List<object> data)
|
||||
public void CreateTable(TableWord tableWord)
|
||||
{
|
||||
// Проверка наличия данных и определений столбцов
|
||||
if (data == null)
|
||||
if (tableWord.Data == null)
|
||||
{
|
||||
throw new ArgumentException("Data or column definitions are null or empty");
|
||||
}
|
||||
|
||||
// Проверка, что все ячейки шапки заполнены и для каждого столбца определено свойство/поле класса
|
||||
foreach (var columnDefinition in columnDefinitions)
|
||||
foreach (var columnDefinition in tableWord.ColumnDefinitions)
|
||||
{
|
||||
if (string.IsNullOrEmpty(columnDefinition.Header) || string.IsNullOrEmpty(columnDefinition.PropertyName))
|
||||
{
|
||||
@ -52,13 +52,21 @@ namespace COPWinForms
|
||||
|
||||
// Установка заголовка документа
|
||||
builder.ParagraphFormat.Style = titleStyle;
|
||||
builder.Writeln(documentTitle);
|
||||
builder.Writeln(tableWord.DocumentTitle);
|
||||
|
||||
// Создание таблицы
|
||||
Table table = builder.StartTable();
|
||||
|
||||
// Вставка шапки таблицы
|
||||
foreach (var columnDefinition in columnDefinitions)
|
||||
// Вставка первой строки шапки таблицы
|
||||
foreach (var columnDefinition in tableWord.ColumnDefinitions)
|
||||
{
|
||||
builder.InsertCell();
|
||||
builder.Write(columnDefinition.Header);
|
||||
}
|
||||
builder.EndRow();
|
||||
|
||||
// Вставка второй строки шапки таблицы
|
||||
foreach (var columnDefinition in tableWord.ColumnDefinitions)
|
||||
{
|
||||
builder.InsertCell();
|
||||
builder.Write(columnDefinition.Header);
|
||||
@ -66,10 +74,10 @@ namespace COPWinForms
|
||||
builder.EndRow();
|
||||
|
||||
// Вставка данных в таблицу
|
||||
foreach (var item in data)
|
||||
foreach (var item in tableWord.Data)
|
||||
{
|
||||
|
||||
foreach (var columnDefinition in columnDefinitions)
|
||||
foreach (var columnDefinition in tableWord.ColumnDefinitions)
|
||||
{
|
||||
builder.InsertCell();
|
||||
// Получение значения свойства/поля объекта по заданному имени
|
||||
@ -88,7 +96,7 @@ namespace COPWinForms
|
||||
builder.EndTable();
|
||||
|
||||
// Сохранение документа в файл
|
||||
document.Save(filePath);
|
||||
document.Save(tableWord.FilePath);
|
||||
}
|
||||
|
||||
public class ColumnDefinition
|
||||
|
@ -39,13 +39,35 @@ namespace COPWinForms
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void CreateLineChart(string filePath, string documentTitle, string chartTitle, string[] categories, string[] seriesName, double[][] data, LegendPosition legendPosition)
|
||||
public void CreateLineChart(DiagramWord diagramWord)
|
||||
{
|
||||
// Проверка наличия данных, названий серий и категорий
|
||||
if (diagramWord.Data == null || diagramWord.SeriesName == null || diagramWord.Categories == null)
|
||||
{
|
||||
throw new ArgumentException("Data, series names, or categories are null");
|
||||
}
|
||||
|
||||
// Проверка соответствия количества серий данных
|
||||
if (diagramWord.SeriesName.Length != diagramWord.Data.Length)
|
||||
{
|
||||
throw new ArgumentException("Number of series names does not match the number of data series");
|
||||
}
|
||||
// Проверка наличия заголовка диаграммы
|
||||
if (string.IsNullOrEmpty(diagramWord.ChartTitle) || string.IsNullOrEmpty(diagramWord.FilePath) || string.IsNullOrEmpty(diagramWord.DocumentTitle))
|
||||
{
|
||||
throw new ArgumentException("Chart title is null or empty");
|
||||
}
|
||||
// Создание документа
|
||||
Document document = new Document();
|
||||
DocumentBuilder builder = new DocumentBuilder(document);
|
||||
|
||||
document.BuiltInDocumentProperties.Title = documentTitle;
|
||||
Style titleStyle = builder.Document.Styles.Add(StyleType.Paragraph, "Title");
|
||||
titleStyle.Font.Size = 16;
|
||||
titleStyle.Font.Bold = true;
|
||||
|
||||
// Установка заголовка документа
|
||||
builder.ParagraphFormat.Style = titleStyle;
|
||||
builder.Writeln(diagramWord.DocumentTitle);
|
||||
|
||||
// Вставка диаграммы
|
||||
Shape chartShape = builder.InsertChart(ChartType.Line, 400, 300);
|
||||
@ -53,21 +75,21 @@ namespace COPWinForms
|
||||
|
||||
// Настройка заголовка диаграммы
|
||||
ChartTitle title = chart.Title;
|
||||
title.Text = chartTitle;
|
||||
title.Text = diagramWord.ChartTitle;
|
||||
|
||||
ChartSeriesCollection seriesColl = chart.Series;
|
||||
seriesColl.Clear(); // Очищаем существующие серии перед добавлением новых
|
||||
|
||||
// Добавление данных в диаграмму
|
||||
for (int i = 0; i < seriesName.Length; i++)
|
||||
for (int i = 0; i < diagramWord.SeriesName.Length; i++)
|
||||
{
|
||||
seriesColl.Add(seriesName[i], categories, data[i]);
|
||||
seriesColl.Add(diagramWord.SeriesName[i], diagramWord.Categories, diagramWord.Data[i]);
|
||||
}
|
||||
|
||||
chart.Legend.Position = (Aspose.Words.Drawing.Charts.LegendPosition)legendPosition;
|
||||
chart.Legend.Position = (Aspose.Words.Drawing.Charts.LegendPosition)diagramWord.LegendPosition;
|
||||
|
||||
// Сохранение документа в файл
|
||||
document.Save(filePath);
|
||||
document.Save(diagramWord.FilePath);
|
||||
}
|
||||
|
||||
|
||||
|
32
COPWinForms/DiagramWord.cs
Normal file
32
COPWinForms/DiagramWord.cs
Normal file
@ -0,0 +1,32 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static COPWinForms.ComponentWord2;
|
||||
|
||||
namespace COPWinForms
|
||||
{
|
||||
public class DiagramWord
|
||||
{
|
||||
public string FilePath = string.Empty;
|
||||
|
||||
public string DocumentTitle = string.Empty;
|
||||
public string ChartTitle = string.Empty;
|
||||
public string[] Categories;
|
||||
public string[] SeriesName;
|
||||
public double[][] Data;
|
||||
public LegendPosition LegendPosition;
|
||||
|
||||
public DiagramWord(string filePath, string documentTitle, string chartTitle, string[] categories, string[] seriesName, double[][] data, LegendPosition legendPosition)
|
||||
{
|
||||
FilePath = filePath;
|
||||
DocumentTitle = documentTitle;
|
||||
ChartTitle = chartTitle;
|
||||
Categories = categories;
|
||||
SeriesName = seriesName;
|
||||
Data = data;
|
||||
LegendPosition = legendPosition;
|
||||
}
|
||||
}
|
||||
}
|
29
COPWinForms/TableWord.cs
Normal file
29
COPWinForms/TableWord.cs
Normal file
@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static COPWinForms.ComponentWord2;
|
||||
|
||||
namespace COPWinForms
|
||||
{
|
||||
public class TableWord
|
||||
{
|
||||
public string FilePath = string.Empty;
|
||||
|
||||
public string DocumentTitle = string.Empty;
|
||||
|
||||
public List<ColumnDefinition> ColumnDefinitions;
|
||||
|
||||
public List<object> Data;
|
||||
|
||||
|
||||
public TableWord(string filePath, string documentTitle, List<ColumnDefinition> columnDefinitions, List<object> data)
|
||||
{
|
||||
FilePath = filePath;
|
||||
DocumentTitle = documentTitle;
|
||||
ColumnDefinitions = columnDefinitions;
|
||||
Data = data;
|
||||
}
|
||||
}
|
||||
}
|
@ -145,7 +145,8 @@ namespace WinFormsTest
|
||||
{
|
||||
try
|
||||
{
|
||||
componentWord31.CreateLineChart(dialog.FileName, "Çàäàíèå 3", "Íàçâàíèå äèàãðàììû", categories, seriesName, data, LegendPosition.Right);
|
||||
DiagramWord diagramWord = new(dialog.FileName, "Çàäàíèå 3", "Íàçâàíèå äèàãðàììû", categories, seriesName, data, LegendPosition.Right);
|
||||
componentWord31.CreateLineChart(diagramWord);
|
||||
MessageBox.Show("Äèàãðàììà ñîçäàíà óñïåøíî", "Ðåçóëüòàò", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
catch (Exception ex)
|
||||
@ -182,7 +183,8 @@ namespace WinFormsTest
|
||||
{
|
||||
try
|
||||
{
|
||||
componentWord21.CreateTable(dialog.FileName, "Çàäàíèå 2", columnDefinitions, data);
|
||||
TableWord tableWord = new(dialog.FileName, "Çàäàíèå 2", columnDefinitions, data);
|
||||
componentWord21.CreateTable(tableWord);
|
||||
MessageBox.Show("Ôàéë ñîçäàí", "Ðåçóëüòàò", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
Loading…
Reference in New Issue
Block a user