Начиная с версии 0.8.7 ReoGrid поддерживает платформу WPF, прорисовка интерфейса пользователя и управление содержимым таблицы разделено между двумя модулями в 0.8.7.
Для прорисовки ReoGrid использует абстрактный интерфейс, позволяющий прорисовывать компонент как для Windows Form, так и для платформы WPF, используя всё тот же API.
Элементы управления для обеих платформ используют единую библиотеку кода управления содержимым электронной таблицы, обеспечивая единые API и библиотеку классов. Один файл шаблона электронной таблицы (формат ReoGrid XML) или файл формата Excel (доступно с версии 0.8.8) может отображаться на обеих платформах.
Добавление табличного компонента в XAML
Добавьте ссылку на библиотеку ReoGrid в целевой проект, отредактируйте XAML файл как показано ниже:
Файл MainWindow.xaml:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:rg="clr-namespace:unvell.ReoGrid;assembly=unvell.ReoGrid" x:Class="WPFDemo.MainWindow" Title="MainWindow" Height="640" Width="800"> <Grid> <rg:ReoGridControl x:Name="grid" > </rg:ReoGridControl> </Grid> </Window>
Убедитесь, что пространство имен объявлено в списке атрибутов окна контейнера, определите ReoGridControl
внутри тега Grid, получите следующий результат:
В приведённом коде вызываем API листа для ввода данных и применения стилей:
// получение текущего экземпляра листа var worksheet = grid.CurrentWorksheet; // получение ссылки на диапазон var range = worksheet.Ranges["B2:C3"]; // сляние ячеек диапазона range.Merge(); // установка стиля диапазона range.Style.BackColor = Graphics.SolidColor.LightYellow; range.BorderOutside = RangeBorderStyle.BlackSolid; // Добавление данных range.Data = "Привет, мир!";
Result:
API в WPF-издании полностью идентичен таковому для Windows form, см. документацию на английском.
Загрузка файла шаблона таблицы
Установим атрибут LoadFromFile
для загрузки шаблона электронной таблицы из файла:
<rg:ReoGridControl LoadFromFile="order_sample.rgf" x:Name="grid" > </rg:ReoGridControl>
После запуска этого примера будет отображен шаблон электронной таблицы. Определённый её диапазон ячеек можно будет заполнить данными с помощью следующего кода:
public MainWindow() { InitializeComponent(); grid.CurrentWorksheet.FileLoaded += CurrentWorksheet_FileLoaded; } void CurrentWorksheet_FileLoaded(object sender, unvell.ReoGrid.Events.FileLoadedEventArgs e) { var worksheet = grid.CurrentWorksheet; var dataRange = worksheet.Ranges["A21:G35"]; dataRange.Data = new object[,] { {"[23423423]", "Продукт ABC", 15, 150, 2250}, {"[45645645]", "Продукт DEF", 1, 75, 75}, {"[78978978]", "Продукт GHI", 2, 30, 60}, }; }
Результат:
[include]/var/local/wordpress/uploads/reogrid.net/2014/08/wpf-features.html[/include]
Подробности можно узнать на странице новостей версии 0.8.7.