DynamicSpreadsheet.xaml.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using System.IO;
  3. using System.Windows;
  4. using InABox.Clients;
  5. using InABox.Core;
  6. using Syncfusion.Windows.Tools.Controls;
  7. using Syncfusion.XlsIO;
  8. namespace InABox.DynamicGrid
  9. {
  10. public partial class DynamicSpreadsheet : RibbonWindow
  11. {
  12. public DynamicSpreadsheet()
  13. {
  14. InitializeComponent();
  15. var filename = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "user.xlsx");
  16. CreateSpreadsheet(filename);
  17. Spreadsheet.Open(filename);
  18. //Spreadsheet.Create(1);
  19. //Spreadsheet.ActiveSheet = Spreadsheet.Workbook.Worksheets[0];
  20. //var table = new Client<User>().Query().ToDataTable();
  21. //Spreadsheet.ActiveSheet.ImportDataTable(table,true,1,1);
  22. // Spreadsheet.ActiveGrid.InvalidateCells();
  23. }
  24. private void CreateSpreadsheet(String filename)
  25. {
  26. using (ExcelEngine excelEngine = new ExcelEngine())
  27. {
  28. IApplication application = excelEngine.Excel;
  29. application.DefaultVersion = ExcelVersion.Excel2013;
  30. IWorkbook workbook = application.Workbooks.Create(1);
  31. IWorksheet worksheet = workbook.Worksheets[0];
  32. var table = new Client<User>().Query().ToDataTable();
  33. worksheet.ImportDataTable(table, true, 1, 1);
  34. workbook.SaveAs(filename);
  35. }
  36. }
  37. }
  38. }