diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage.sln b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage.sln
new file mode 100644
index 00000000..67b6ff98
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage.sln
@@ -0,0 +1,27 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.14.36127.28 d17.14
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConvertExcelToImage", "ConvertExcelToImage\ConvertExcelToImage.csproj", "{E853FA99-0761-4807-B8CF-BD1B21BEBBDF}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {E853FA99-0761-4807-B8CF-BD1B21BEBBDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E853FA99-0761-4807-B8CF-BD1B21BEBBDF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E853FA99-0761-4807-B8CF-BD1B21BEBBDF}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {E853FA99-0761-4807-B8CF-BD1B21BEBBDF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E853FA99-0761-4807-B8CF-BD1B21BEBBDF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E853FA99-0761-4807-B8CF-BD1B21BEBBDF}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {2654F362-EEC3-4AC5-86DB-84DC0B03FE65}
+ EndGlobalSection
+EndGlobal
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/App.xaml b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/App.xaml
new file mode 100644
index 00000000..c3eb4ddd
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/App.xaml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/App.xaml.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/App.xaml.cs
new file mode 100644
index 00000000..5ecf41d9
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/App.xaml.cs
@@ -0,0 +1,12 @@
+namespace ConvertExcelToImage
+{
+ public partial class App : Application
+ {
+ public App()
+ {
+ InitializeComponent();
+
+ MainPage = new AppShell();
+ }
+ }
+}
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/AppShell.xaml b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/AppShell.xaml
new file mode 100644
index 00000000..37d07b8b
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/AppShell.xaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/AppShell.xaml.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/AppShell.xaml.cs
new file mode 100644
index 00000000..420aa9dd
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/AppShell.xaml.cs
@@ -0,0 +1,10 @@
+namespace ConvertExcelToImage
+{
+ public partial class AppShell : Shell
+ {
+ public AppShell()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/ConvertExcelToImage.csproj b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/ConvertExcelToImage.csproj
new file mode 100644
index 00000000..7f53adbc
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/ConvertExcelToImage.csproj
@@ -0,0 +1,74 @@
+
+
+
+ net8.0-android;net8.0-ios;net8.0-maccatalyst
+ $(TargetFrameworks);net8.0-windows10.0.19041.0
+
+
+
+
+
+
+ Exe
+ ConvertExcelToImage
+ true
+ true
+ enable
+ enable
+
+
+ ConvertExcelToImage
+
+
+ com.companyname.convertexceltoimage
+
+
+ 1.0
+ 1
+
+ 11.0
+ 13.1
+ 21.0
+ 10.0.17763.0
+ 10.0.17763.0
+ 6.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/ConvertExcelToImage.csproj.user b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/ConvertExcelToImage.csproj.user
new file mode 100644
index 00000000..891593c4
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/ConvertExcelToImage.csproj.user
@@ -0,0 +1,31 @@
+
+
+
+ False
+ net8.0-windows10.0.19041.0
+ Windows Machine
+
+
+
+ Designer
+
+
+ Designer
+
+
+ Designer
+
+
+ Designer
+
+
+ Designer
+
+
+ Designer
+
+
+ Designer
+
+
+
\ No newline at end of file
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/InputTemplate.xlsx b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/InputTemplate.xlsx
new file mode 100644
index 00000000..a7c5e8d7
Binary files /dev/null and b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/InputTemplate.xlsx differ
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/MainPage.xaml b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/MainPage.xaml
new file mode 100644
index 00000000..08944ee7
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/MainPage.xaml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/MainPage.xaml.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/MainPage.xaml.cs
new file mode 100644
index 00000000..387c5ab0
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/MainPage.xaml.cs
@@ -0,0 +1,47 @@
+using Syncfusion.XlsIO;
+using Syncfusion.XlsIORenderer;
+using System.IO;
+using System.Reflection;
+using ConvertExcelToImage.SaveServices;
+
+namespace ConvertExcelToImage
+{
+ public partial class MainPage : ContentPage
+ {
+ int count = 0;
+
+ public MainPage()
+ {
+ InitializeComponent();
+ }
+
+ private void convertExceltoImage_Click(object sender, EventArgs e)
+ {
+ using (ExcelEngine excelEngine = new ExcelEngine())
+ {
+ Syncfusion.XlsIO.IApplication application = excelEngine.Excel;
+
+ Assembly executingAssembly = typeof(App).GetTypeInfo().Assembly;
+ using (Stream inputStream = executingAssembly.GetManifestResourceStream("ConvertExcelToImage.InputTemplate.xlsx"))
+ {
+ IWorkbook workbook = application.Workbooks.Open(inputStream);
+ IWorksheet worksheet = workbook.Worksheets[0];
+
+ //Initialize XlsIO renderer.
+ application.XlsIORenderer = new XlsIORenderer();
+
+ //Create the MemoryStream to save the image.
+ MemoryStream imageStream = new MemoryStream();
+
+ //Save the converted image to MemoryStream.
+ worksheet.ConvertToImage(worksheet.UsedRange, imageStream);
+ imageStream.Position = 0;
+
+ //save and Launch the Image
+ SaveService saveService = new();
+ saveService.SaveAndView("ExcelToImage.Jpeg", "application/jpeg", imageStream);
+ }
+ }
+ }
+ }
+}
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/MauiProgram.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/MauiProgram.cs
new file mode 100644
index 00000000..4483b41f
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/MauiProgram.cs
@@ -0,0 +1,20 @@
+namespace ConvertExcelToImage
+{
+ public static class MauiProgram
+ {
+ public static MauiApp CreateMauiApp()
+ {
+ var builder = MauiApp.CreateBuilder();
+ builder
+ .UseMauiApp()
+ .ConfigureFonts(fonts =>
+ {
+ fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
+ fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
+ });
+
+
+ return builder.Build();
+ }
+ }
+}
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Android/AndroidManifest.xml b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Android/AndroidManifest.xml
new file mode 100644
index 00000000..e9937ad7
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Android/AndroidManifest.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Android/MainActivity.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Android/MainActivity.cs
new file mode 100644
index 00000000..1e9a8366
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Android/MainActivity.cs
@@ -0,0 +1,11 @@
+using Android.App;
+using Android.Content.PM;
+using Android.OS;
+
+namespace ConvertExcelToImage
+{
+ [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, LaunchMode = LaunchMode.SingleTop, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
+ public class MainActivity : MauiAppCompatActivity
+ {
+ }
+}
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Android/MainApplication.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Android/MainApplication.cs
new file mode 100644
index 00000000..e39b75f6
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Android/MainApplication.cs
@@ -0,0 +1,16 @@
+using Android.App;
+using Android.Runtime;
+
+namespace ConvertExcelToImage
+{
+ [Application]
+ public class MainApplication : MauiApplication
+ {
+ public MainApplication(IntPtr handle, JniHandleOwnership ownership)
+ : base(handle, ownership)
+ {
+ }
+
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+ }
+}
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Android/Resources/values/colors.xml b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Android/Resources/values/colors.xml
new file mode 100644
index 00000000..c04d7492
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Android/Resources/values/colors.xml
@@ -0,0 +1,6 @@
+
+
+ #512BD4
+ #2B0B98
+ #2B0B98
+
\ No newline at end of file
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Android/SaveAndroid.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Android/SaveAndroid.cs
new file mode 100644
index 00000000..a3bc4385
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Android/SaveAndroid.cs
@@ -0,0 +1,72 @@
+using Android.Content;
+using Android.OS;
+using Java.IO;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConvertExcelToImage.SaveServices
+{
+ public partial class SaveService
+ {
+ public partial void SaveAndView(string filename, string contentType, MemoryStream stream)
+ {
+ string exception = string.Empty;
+ string? root = null;
+
+ if (Android.OS.Environment.IsExternalStorageEmulated)
+ {
+ root = Android.App.Application.Context!.GetExternalFilesDir(Android.OS.Environment.DirectoryDownloads)!.AbsolutePath;
+ }
+ else
+ root = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);
+
+ Java.IO.File myDir = new(root + "/Syncfusion");
+ myDir.Mkdir();
+
+ Java.IO.File file = new(myDir, filename);
+
+ if (file.Exists())
+ {
+ file.Delete();
+ }
+
+ try
+ {
+ FileOutputStream outs = new(file);
+ outs.Write(stream.ToArray());
+
+ outs.Flush();
+ outs.Close();
+ }
+ catch (Exception e)
+ {
+ exception = e.ToString();
+ }
+ if (file.Exists())
+ {
+ Android.Net.Uri path = Android.Net.Uri.FromFile(file);
+
+ string extension = Android.Webkit.MimeTypeMap.GetFileExtensionFromUrl(Android.Net.Uri.FromFile(file).ToString());
+
+ string mimeType = Android.Webkit.MimeTypeMap.Singleton.GetMimeTypeFromExtension(extension);
+
+ Intent intent = new Intent(Intent.ActionView);
+
+ intent.SetFlags(ActivityFlags.ClearTop | ActivityFlags.NewTask);
+
+ path = FileProvider.GetUriForFile(Android.App.Application.Context, Android.App.Application.Context.PackageName + ".provider", file);
+
+ intent.SetDataAndType(path, mimeType);
+
+ intent.AddFlags(ActivityFlags.GrantReadUriPermission);
+
+ Android.App.Application.Context.StartActivity(intent);
+
+ }
+ }
+
+ }
+}
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/MacCatalyst/AppDelegate.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/MacCatalyst/AppDelegate.cs
new file mode 100644
index 00000000..1a11288a
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/MacCatalyst/AppDelegate.cs
@@ -0,0 +1,10 @@
+using Foundation;
+
+namespace ConvertExcelToImage
+{
+ [Register("AppDelegate")]
+ public class AppDelegate : MauiUIApplicationDelegate
+ {
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+ }
+}
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/MacCatalyst/Entitlements.plist b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/MacCatalyst/Entitlements.plist
new file mode 100644
index 00000000..de4adc94
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/MacCatalyst/Entitlements.plist
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ com.apple.security.app-sandbox
+
+
+ com.apple.security.network.client
+
+
+
+
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/MacCatalyst/Info.plist b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/MacCatalyst/Info.plist
new file mode 100644
index 00000000..72689771
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/MacCatalyst/Info.plist
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UIDeviceFamily
+
+ 2
+
+ UIRequiredDeviceCapabilities
+
+ arm64
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ XSAppIconAssets
+ Assets.xcassets/appicon.appiconset
+
+
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/MacCatalyst/Program.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/MacCatalyst/Program.cs
new file mode 100644
index 00000000..2c7e4c67
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/MacCatalyst/Program.cs
@@ -0,0 +1,16 @@
+using ObjCRuntime;
+using UIKit;
+
+namespace ConvertExcelToImage
+{
+ public class Program
+ {
+ // This is the main entry point of the application.
+ static void Main(string[] args)
+ {
+ // if you want to use a different Application Delegate class from "AppDelegate"
+ // you can specify it here.
+ UIApplication.Main(args, null, typeof(AppDelegate));
+ }
+ }
+}
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/MacCatalyst/SaveMac.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/MacCatalyst/SaveMac.cs
new file mode 100644
index 00000000..d862951c
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/MacCatalyst/SaveMac.cs
@@ -0,0 +1,130 @@
+using Foundation;
+using QuickLook;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using UIKit;
+
+namespace ConvertExcelToImage.SaveServices
+{
+ public partial class SaveService
+ {
+ public partial void SaveAndView(string filename, string contentType, MemoryStream stream)
+ {
+ string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
+ string filePath = Path.Combine(path, filename);
+ stream.Position = 0;
+ //Saves the document
+ using FileStream fileStream = new(filePath, FileMode.Create, FileAccess.ReadWrite);
+ stream.CopyTo(fileStream);
+ fileStream.Flush();
+ fileStream.Dispose();
+ UIWindow? window = GetKeyWindow();
+ if (window != null && window.RootViewController != null)
+ {
+ UIViewController? uiViewController = window.RootViewController;
+ if (uiViewController != null)
+ {
+ QLPreviewController qlPreview = new();
+ QLPreviewItem item = new QLPreviewItemBundle(filename, filePath);
+ qlPreview.DataSource = new PreviewControllerDS(item);
+ uiViewController.PresentViewController((UIViewController)qlPreview, true, null);
+ }
+ }
+
+ }
+ public UIWindow? GetKeyWindow()
+ {
+ foreach (var scene in UIApplication.SharedApplication.ConnectedScenes)
+ {
+ if (scene is UIWindowScene windowScene)
+ {
+ foreach (var window in windowScene.Windows)
+ {
+ if (window.IsKeyWindow)
+ {
+ return window;
+ }
+ }
+ }
+ }
+
+ return null;
+ }
+ }
+ public class QLPreviewItemFileSystem : QLPreviewItem
+ {
+ readonly string _fileName, _filePath;
+
+ public QLPreviewItemFileSystem(string fileName, string filePath)
+ {
+ _fileName = fileName;
+ _filePath = filePath;
+ }
+
+ public override string PreviewItemTitle
+ {
+ get
+ {
+ return _fileName;
+ }
+ }
+ public override NSUrl PreviewItemUrl
+ {
+ get
+ {
+ return NSUrl.FromFilename(_filePath);
+ }
+ }
+ }
+
+ public class QLPreviewItemBundle : QLPreviewItem
+ {
+ readonly string _fileName, _filePath;
+ public QLPreviewItemBundle(string fileName, string filePath)
+ {
+ _fileName = fileName;
+ _filePath = filePath;
+ }
+
+ public override string PreviewItemTitle
+ {
+ get
+ {
+ return _fileName;
+ }
+ }
+ public override NSUrl PreviewItemUrl
+ {
+ get
+ {
+ var documents = NSBundle.MainBundle.BundlePath;
+ var lib = Path.Combine(documents, _filePath);
+ var url = NSUrl.FromFilename(lib);
+ return url;
+ }
+ }
+ }
+
+ public class PreviewControllerDS : QLPreviewControllerDataSource
+ {
+ private readonly QLPreviewItem _item;
+
+ public PreviewControllerDS(QLPreviewItem item)
+ {
+ _item = item;
+ }
+
+ public override nint PreviewItemCount(QLPreviewController controller)
+ {
+ return (nint)1;
+ }
+
+ public override IQLPreviewItem GetPreviewItem(QLPreviewController controller, nint index)
+ {
+ return _item;
+ }
+ }
+}
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Tizen/Main.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Tizen/Main.cs
new file mode 100644
index 00000000..05313158
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Tizen/Main.cs
@@ -0,0 +1,17 @@
+using System;
+using Microsoft.Maui;
+using Microsoft.Maui.Hosting;
+
+namespace ConvertExcelToImage
+{
+ internal class Program : MauiApplication
+ {
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+
+ static void Main(string[] args)
+ {
+ var app = new Program();
+ app.Run(args);
+ }
+ }
+}
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Tizen/tizen-manifest.xml b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Tizen/tizen-manifest.xml
new file mode 100644
index 00000000..a9bc6904
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Tizen/tizen-manifest.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+ maui-appicon-placeholder
+
+
+
+
+ http://tizen.org/privilege/internet
+
+
+
+
\ No newline at end of file
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Windows/App.xaml b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Windows/App.xaml
new file mode 100644
index 00000000..81c36cf1
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Windows/App.xaml
@@ -0,0 +1,8 @@
+
+
+
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Windows/App.xaml.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Windows/App.xaml.cs
new file mode 100644
index 00000000..b85e1d14
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Windows/App.xaml.cs
@@ -0,0 +1,25 @@
+using Microsoft.UI.Xaml;
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace ConvertExcelToImage.WinUI
+{
+ ///
+ /// Provides application-specific behavior to supplement the default Application class.
+ ///
+ public partial class App : MauiWinUIApplication
+ {
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public App()
+ {
+ this.InitializeComponent();
+ }
+
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+ }
+
+}
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Windows/Package.appxmanifest b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Windows/Package.appxmanifest
new file mode 100644
index 00000000..efd4e477
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Windows/Package.appxmanifest
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+ $placeholder$
+ User Name
+ $placeholder$.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Windows/SaveWindows.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Windows/SaveWindows.cs
new file mode 100644
index 00000000..f4641b72
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Windows/SaveWindows.cs
@@ -0,0 +1,94 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Windows.Storage.Pickers;
+using Windows.Storage.Streams;
+using Windows.Storage;
+using Windows.UI.Popups;
+
+namespace ConvertExcelToImage.SaveServices
+{
+ public partial class SaveService
+ {
+ public async partial void SaveAndView(string filename, string contentType, MemoryStream stream)
+ {
+ StorageFile storageFile;
+ string extension = Path.GetExtension(filename);
+ //Gets process windows handle to open the dialog in application process.
+ IntPtr windowHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
+ if (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
+ {
+ FileSavePicker savePicker = new();
+ if (extension == ".Jpeg")
+ {
+ savePicker.DefaultFileExtension = ".jpeg";
+ savePicker.SuggestedFileName = filename;
+ //Saves the file as Image file.
+ savePicker.FileTypeChoices.Add("JPEG", new List() { ".jpeg" });
+ }
+
+ WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle);
+ storageFile = await savePicker.PickSaveFileAsync();
+ }
+ else
+ {
+ StorageFolder local = ApplicationData.Current.LocalFolder;
+ storageFile = await local.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);
+ }
+ if (storageFile != null)
+ {
+ try
+ {
+ using (IRandomAccessStream zipStream = await storageFile.OpenAsync(FileAccessMode.ReadWrite))
+ {
+ //Writes compressed data from memory to file.
+ using Stream outstream = zipStream.AsStreamForWrite();
+ outstream.SetLength(0);
+ byte[] buffer = stream.ToArray();
+ outstream.Write(buffer, 0, buffer.Length);
+ outstream.Flush();
+ }
+ //Creates message dialog box.
+ MessageDialog msgDialog = new("Do you want to view the Document?", "File has been created successfully");
+ UICommand yesCmd = new("Yes");
+ msgDialog.Commands.Add(yesCmd);
+ UICommand noCmd = new("No");
+ msgDialog.Commands.Add(noCmd);
+
+ WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle);
+
+ //Showing a dialog box.
+ IUICommand cmd = await msgDialog.ShowAsync();
+ if (cmd.Label == yesCmd.Label)
+ {
+ if (extension == ".md")
+ {
+ Windows.System.LauncherOptions options = new Windows.System.LauncherOptions();
+ options.DisplayApplicationPicker = true;
+ // Launch the file with "Open with" option.
+ await Windows.System.Launcher.LaunchFileAsync(storageFile, options);
+ }
+ else
+ //Launch the saved file.
+ await Windows.System.Launcher.LaunchFileAsync(storageFile);
+ }
+ }
+ catch (Exception ex)
+ {
+ if (ex.Message.Contains("Access is denied."))
+ {
+ //Creates message dialog box.
+ MessageDialog msgDialogBox = new("Access to the given path is denied. Please enable permission to save the file in that folder or save the file in another location.", "Access Denied");
+ UICommand okCmd = new("Ok");
+ msgDialogBox.Commands.Add(okCmd);
+ WinRT.Interop.InitializeWithWindow.Initialize(msgDialogBox, windowHandle);
+ //Showing a dialog box.
+ IUICommand msgCmd = await msgDialogBox.ShowAsync();
+ }
+ }
+ }
+ }
+ }
+ }
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Windows/app.manifest b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Windows/app.manifest
new file mode 100644
index 00000000..60615d4d
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/Windows/app.manifest
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+ true/PM
+ PerMonitorV2, PerMonitor
+
+
+
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/AppDelegate.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/AppDelegate.cs
new file mode 100644
index 00000000..1a11288a
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/AppDelegate.cs
@@ -0,0 +1,10 @@
+using Foundation;
+
+namespace ConvertExcelToImage
+{
+ [Register("AppDelegate")]
+ public class AppDelegate : MauiUIApplicationDelegate
+ {
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+ }
+}
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/Info.plist b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/Info.plist
new file mode 100644
index 00000000..0004a4fd
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/Info.plist
@@ -0,0 +1,32 @@
+
+
+
+
+ LSRequiresIPhoneOS
+
+ UIDeviceFamily
+
+ 1
+ 2
+
+ UIRequiredDeviceCapabilities
+
+ arm64
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ XSAppIconAssets
+ Assets.xcassets/appicon.appiconset
+
+
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/PreviewControllerDS.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/PreviewControllerDS.cs
new file mode 100644
index 00000000..c68d0aa0
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/PreviewControllerDS.cs
@@ -0,0 +1,28 @@
+#region Copyright Syncfusion Inc. 2001 - 2023
+// Copyright Syncfusion Inc. 2001 - 2023. All rights reserved.
+// Use of this code is subject to the terms of our license.
+// A copy of the current license can be obtained at any time by e-mailing
+// licensing@syncfusion.com. Any infringement will be prosecuted under
+// applicable laws.
+#endregion
+using QuickLook;
+
+public class PreviewControllerDS : QLPreviewControllerDataSource
+{
+ private readonly QLPreviewItem _item;
+
+ public PreviewControllerDS(QLPreviewItem item)
+ {
+ _item = item;
+ }
+
+ public override nint PreviewItemCount(QLPreviewController controller)
+ {
+ return (nint)1;
+ }
+
+ public override IQLPreviewItem GetPreviewItem(QLPreviewController controller, nint index)
+ {
+ return _item;
+ }
+}
\ No newline at end of file
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/Program.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/Program.cs
new file mode 100644
index 00000000..2c7e4c67
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/Program.cs
@@ -0,0 +1,16 @@
+using ObjCRuntime;
+using UIKit;
+
+namespace ConvertExcelToImage
+{
+ public class Program
+ {
+ // This is the main entry point of the application.
+ static void Main(string[] args)
+ {
+ // if you want to use a different Application Delegate class from "AppDelegate"
+ // you can specify it here.
+ UIApplication.Main(args, null, typeof(AppDelegate));
+ }
+ }
+}
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/QLPreviewItemFileSystem.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/QLPreviewItemFileSystem.cs
new file mode 100644
index 00000000..85797bf2
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/QLPreviewItemFileSystem.cs
@@ -0,0 +1,65 @@
+#region Copyright Syncfusion Inc. 2001 - 2023
+// Copyright Syncfusion Inc. 2001 - 2023. All rights reserved.
+// Use of this code is subject to the terms of our license.
+// A copy of the current license can be obtained at any time by e-mailing
+// licensing@syncfusion.com. Any infringement will be prosecuted under
+// applicable laws.
+#endregion
+using Foundation;
+using QuickLook;
+using System.IO;
+
+public class QLPreviewItemFileSystem : QLPreviewItem
+{
+ readonly string _fileName, _filePath;
+
+ public QLPreviewItemFileSystem(string fileName, string filePath)
+ {
+ _fileName = fileName;
+ _filePath = filePath;
+ }
+
+ public override string PreviewItemTitle
+ {
+ get
+ {
+ return _fileName;
+ }
+ }
+ public override NSUrl PreviewItemUrl
+ {
+ get
+ {
+ return NSUrl.FromFilename(_filePath);
+ }
+ }
+}
+
+public class QLPreviewItemBundle : QLPreviewItem
+{
+ readonly string _fileName, _filePath;
+ public QLPreviewItemBundle(string fileName, string filePath)
+ {
+ _fileName = fileName;
+ _filePath = filePath;
+ }
+
+ public override string PreviewItemTitle
+ {
+ get
+ {
+ return _fileName;
+ }
+ }
+ public override NSUrl PreviewItemUrl
+ {
+ get
+ {
+ var documents = NSBundle.MainBundle.BundlePath;
+ var lib = Path.Combine(documents, _filePath);
+ var url = NSUrl.FromFilename(lib);
+ return url;
+ }
+ }
+}
+
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/Resources/PrivacyInfo.xcprivacy b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 00000000..24ab3b43
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,51 @@
+
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryFileTimestamp
+ NSPrivacyAccessedAPITypeReasons
+
+ C617.1
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategorySystemBootTime
+ NSPrivacyAccessedAPITypeReasons
+
+ 35F9.1
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryDiskSpace
+ NSPrivacyAccessedAPITypeReasons
+
+ E174.1
+
+
+
+
+
+
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/SaveIOS.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/SaveIOS.cs
new file mode 100644
index 00000000..4f218fa1
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Platforms/iOS/SaveIOS.cs
@@ -0,0 +1,46 @@
+using QuickLook;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using UIKit;
+
+namespace ConvertExcelToImage.SaveServices
+{
+ public partial class SaveService
+ {
+ public partial void SaveAndView(string filename, string contentType, MemoryStream stream)
+ {
+ string exception = string.Empty;
+ string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
+ string filePath = Path.Combine(path, filename);
+ try
+ {
+ FileStream fileStream = File.Open(filePath, FileMode.Create);
+ stream.Position = 0;
+ stream.CopyTo(fileStream);
+ fileStream.Flush();
+ fileStream.Close();
+ }
+ catch (Exception e)
+ {
+ exception = e.ToString();
+ }
+ if (contentType != "application/html" || exception == string.Empty)
+ {
+#pragma warning disable CA1416
+ UIViewController? currentController = UIApplication.SharedApplication!.KeyWindow!.RootViewController;
+#pragma warning restore CA1416
+ while (currentController!.PresentedViewController != null)
+ currentController = currentController.PresentedViewController;
+
+ QLPreviewController qlPreview = new();
+ QLPreviewItem item = new QLPreviewItemBundle(filename, filePath);
+ qlPreview.DataSource = new PreviewControllerDS(item);
+ currentController.PresentViewController((UIViewController)qlPreview, true, null);
+ }
+ }
+
+ }
+}
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Properties/launchSettings.json b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Properties/launchSettings.json
new file mode 100644
index 00000000..edf8aadc
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Properties/launchSettings.json
@@ -0,0 +1,8 @@
+{
+ "profiles": {
+ "Windows Machine": {
+ "commandName": "MsixPackage",
+ "nativeDebugging": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/AppIcon/appicon.svg b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/AppIcon/appicon.svg
new file mode 100644
index 00000000..9d63b651
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/AppIcon/appicon.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/AppIcon/appiconfg.svg b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/AppIcon/appiconfg.svg
new file mode 100644
index 00000000..21dfb25f
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/AppIcon/appiconfg.svg
@@ -0,0 +1,8 @@
+
+
+
\ No newline at end of file
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Fonts/OpenSans-Regular.ttf b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Fonts/OpenSans-Regular.ttf
new file mode 100644
index 00000000..ee3f28f4
Binary files /dev/null and b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Fonts/OpenSans-Regular.ttf differ
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Fonts/OpenSans-Semibold.ttf b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Fonts/OpenSans-Semibold.ttf
new file mode 100644
index 00000000..bc81019a
Binary files /dev/null and b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Fonts/OpenSans-Semibold.ttf differ
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Images/dotnet_bot.png b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Images/dotnet_bot.png
new file mode 100644
index 00000000..f93ce025
Binary files /dev/null and b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Images/dotnet_bot.png differ
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Raw/AboutAssets.txt b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Raw/AboutAssets.txt
new file mode 100644
index 00000000..89dc758d
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Raw/AboutAssets.txt
@@ -0,0 +1,15 @@
+Any raw assets you want to be deployed with your application can be placed in
+this directory (and child directories). Deployment of the asset to your application
+is automatically handled by the following `MauiAsset` Build Action within your `.csproj`.
+
+
+
+These files will be deployed with your package and will be accessible using Essentials:
+
+ async Task LoadMauiAsset()
+ {
+ using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt");
+ using var reader = new StreamReader(stream);
+
+ var contents = reader.ReadToEnd();
+ }
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Splash/splash.svg b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Splash/splash.svg
new file mode 100644
index 00000000..21dfb25f
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Splash/splash.svg
@@ -0,0 +1,8 @@
+
+
+
\ No newline at end of file
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Styles/Colors.xaml b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Styles/Colors.xaml
new file mode 100644
index 00000000..30307a5d
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Styles/Colors.xaml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ #512BD4
+ #ac99ea
+ #242424
+ #DFD8F7
+ #9880e5
+ #2B0B98
+
+ White
+ Black
+ #D600AA
+ #190649
+ #1f1f1f
+
+ #E1E1E1
+ #C8C8C8
+ #ACACAC
+ #919191
+ #6E6E6E
+ #404040
+ #212121
+ #141414
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Styles/Styles.xaml b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Styles/Styles.xaml
new file mode 100644
index 00000000..6641e3ae
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Resources/Styles/Styles.xaml
@@ -0,0 +1,427 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Services/SaveService.cs b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Services/SaveService.cs
new file mode 100644
index 00000000..8331d64a
--- /dev/null
+++ b/Getting Started/.NET MAUI/ConvertExcelToImage/ConvertExcelToImage/Services/SaveService.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConvertExcelToImage.SaveServices
+{
+ public partial class SaveService
+ {
+ //Method to save document as a file and view the saved document.
+ public partial void SaveAndView(string filename, string contentType, MemoryStream stream);
+ }
+}