1 и 3 все супер, но 2..........
This commit is contained in:
parent
1980650439
commit
e15e9c2088
@ -45,6 +45,10 @@ namespace COPWinForms
|
|||||||
}
|
}
|
||||||
public void CreateWordText(TextWord textWord)
|
public void CreateWordText(TextWord textWord)
|
||||||
{
|
{
|
||||||
|
if (string.IsNullOrEmpty(textWord.FilePath) || string.IsNullOrEmpty(textWord.DocumentTitle) || !CheckData(textWord.TextData))
|
||||||
|
{
|
||||||
|
throw new Exception("Не все данные заполнены");
|
||||||
|
}
|
||||||
// Создание документа
|
// Создание документа
|
||||||
Document document = new Document();
|
Document document = new Document();
|
||||||
DocumentBuilder builder = new DocumentBuilder(document);
|
DocumentBuilder builder = new DocumentBuilder(document);
|
||||||
|
@ -25,16 +25,16 @@ namespace COPWinForms
|
|||||||
InitializeComponent();
|
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");
|
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))
|
if (string.IsNullOrEmpty(columnDefinition.Header) || string.IsNullOrEmpty(columnDefinition.PropertyName))
|
||||||
{
|
{
|
||||||
@ -52,13 +52,21 @@ namespace COPWinForms
|
|||||||
|
|
||||||
// Установка заголовка документа
|
// Установка заголовка документа
|
||||||
builder.ParagraphFormat.Style = titleStyle;
|
builder.ParagraphFormat.Style = titleStyle;
|
||||||
builder.Writeln(documentTitle);
|
builder.Writeln(tableWord.DocumentTitle);
|
||||||
|
|
||||||
// Создание таблицы
|
// Создание таблицы
|
||||||
Table table = builder.StartTable();
|
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.InsertCell();
|
||||||
builder.Write(columnDefinition.Header);
|
builder.Write(columnDefinition.Header);
|
||||||
@ -66,10 +74,10 @@ namespace COPWinForms
|
|||||||
builder.EndRow();
|
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();
|
builder.InsertCell();
|
||||||
// Получение значения свойства/поля объекта по заданному имени
|
// Получение значения свойства/поля объекта по заданному имени
|
||||||
@ -88,7 +96,7 @@ namespace COPWinForms
|
|||||||
builder.EndTable();
|
builder.EndTable();
|
||||||
|
|
||||||
// Сохранение документа в файл
|
// Сохранение документа в файл
|
||||||
document.Save(filePath);
|
document.Save(tableWord.FilePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ColumnDefinition
|
public class ColumnDefinition
|
||||||
|
@ -39,13 +39,35 @@ namespace COPWinForms
|
|||||||
InitializeComponent();
|
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();
|
Document document = new Document();
|
||||||
DocumentBuilder builder = new DocumentBuilder(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);
|
Shape chartShape = builder.InsertChart(ChartType.Line, 400, 300);
|
||||||
@ -53,21 +75,21 @@ namespace COPWinForms
|
|||||||
|
|
||||||
// Настройка заголовка диаграммы
|
// Настройка заголовка диаграммы
|
||||||
ChartTitle title = chart.Title;
|
ChartTitle title = chart.Title;
|
||||||
title.Text = chartTitle;
|
title.Text = diagramWord.ChartTitle;
|
||||||
|
|
||||||
ChartSeriesCollection seriesColl = chart.Series;
|
ChartSeriesCollection seriesColl = chart.Series;
|
||||||
seriesColl.Clear(); // Очищаем существующие серии перед добавлением новых
|
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
|
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);
|
MessageBox.Show("Äèàãðàììà ñîçäàíà óñïåøíî", "Ðåçóëüòàò", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -182,7 +183,8 @@ namespace WinFormsTest
|
|||||||
{
|
{
|
||||||
try
|
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);
|
MessageBox.Show("Ôàéë ñîçäàí", "Ðåçóëüòàò", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
Loading…
Reference in New Issue
Block a user