├── .gitattributes ├── .gitignore ├── ExportDataToExcel.sln ├── ExportDataToExcel ├── ExportDataToExcel.Android │ ├── Assets │ │ └── AboutAssets.txt │ ├── ExportDataToExcel.Android.csproj │ ├── ExportFilesToLocation.cs │ ├── MainActivity.cs │ ├── Properties │ │ ├── AndroidManifest.xml │ │ └── AssemblyInfo.cs │ └── Resources │ │ ├── AboutResources.txt │ │ ├── Resource.designer.cs │ │ ├── drawable │ │ ├── avatar.png │ │ ├── right.png │ │ ├── shareexcel.png │ │ └── user.png │ │ ├── layout │ │ ├── Tabbar.axml │ │ └── Toolbar.axml │ │ ├── mipmap-anydpi-v26 │ │ ├── icon.xml │ │ └── icon_round.xml │ │ ├── mipmap-hdpi │ │ ├── icon.png │ │ └── launcher_foreground.png │ │ ├── mipmap-mdpi │ │ ├── icon.png │ │ └── launcher_foreground.png │ │ ├── mipmap-xhdpi │ │ ├── icon.png │ │ └── launcher_foreground.png │ │ ├── mipmap-xxhdpi │ │ ├── icon.png │ │ └── launcher_foreground.png │ │ ├── mipmap-xxxhdpi │ │ ├── icon.png │ │ └── launcher_foreground.png │ │ └── values │ │ ├── colors.xml │ │ └── styles.xml ├── ExportDataToExcel.UWP │ ├── App.xaml │ ├── App.xaml.cs │ ├── Assets │ │ ├── LargeTile.scale-100.png │ │ ├── LargeTile.scale-200.png │ │ ├── LargeTile.scale-400.png │ │ ├── SmallTile.scale-100.png │ │ ├── SmallTile.scale-200.png │ │ ├── SmallTile.scale-400.png │ │ ├── SplashScreen.scale-100.png │ │ ├── SplashScreen.scale-200.png │ │ ├── SplashScreen.scale-400.png │ │ ├── Square150x150Logo.scale-100.png │ │ ├── Square150x150Logo.scale-200.png │ │ ├── Square150x150Logo.scale-400.png │ │ ├── Square44x44Logo.altform-unplated_targetsize-16.png │ │ ├── Square44x44Logo.altform-unplated_targetsize-256.png │ │ ├── Square44x44Logo.altform-unplated_targetsize-48.png │ │ ├── Square44x44Logo.scale-100.png │ │ ├── Square44x44Logo.scale-200.png │ │ ├── Square44x44Logo.scale-400.png │ │ ├── Square44x44Logo.targetsize-16.png │ │ ├── Square44x44Logo.targetsize-256.png │ │ ├── Square44x44Logo.targetsize-48.png │ │ ├── StoreLogo.backup.png │ │ ├── StoreLogo.scale-100.png │ │ ├── StoreLogo.scale-200.png │ │ ├── StoreLogo.scale-400.png │ │ ├── Wide310x150Logo.scale-100.png │ │ ├── Wide310x150Logo.scale-200.png │ │ ├── Wide310x150Logo.scale-400.png │ │ ├── avatar.png │ │ ├── right.png │ │ ├── shareexcel.png │ │ └── user.png │ ├── ExportDataToExcel.UWP.csproj │ ├── MainPage.xaml │ ├── MainPage.xaml.cs │ ├── Package.appxmanifest │ └── Properties │ │ ├── AssemblyInfo.cs │ │ └── Default.rd.xml ├── ExportDataToExcel.iOS │ ├── AppDelegate.cs │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon1024.png │ │ │ ├── Icon120.png │ │ │ ├── Icon152.png │ │ │ ├── Icon167.png │ │ │ ├── Icon180.png │ │ │ ├── Icon20.png │ │ │ ├── Icon29.png │ │ │ ├── Icon40.png │ │ │ ├── Icon58.png │ │ │ ├── Icon60.png │ │ │ ├── Icon76.png │ │ │ ├── Icon80.png │ │ │ └── Icon87.png │ ├── Entitlements.plist │ ├── ExportDataToExcel.iOS.csproj │ ├── ExportFilesToLocation.cs │ ├── Info.plist │ ├── Main.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ └── Resources │ │ ├── Default-568h@2x.png │ │ ├── Default-Portrait.png │ │ ├── Default-Portrait@2x.png │ │ ├── Default.png │ │ ├── Default@2x.png │ │ ├── LaunchScreen.storyboard │ │ ├── avatar.png │ │ ├── right.png │ │ ├── shareexcel.png │ │ └── user.png ├── ExportDataToExcel │ ├── App.xaml │ ├── App.xaml.cs │ ├── ExportDataToExcel.csproj │ ├── Helpers │ │ └── ObservableObject.cs │ ├── Interfaces │ │ └── IExportFilesToLocation.cs │ ├── MainPage.xaml │ ├── MainPage.xaml.cs │ ├── Models │ │ └── XFDeveloper.cs │ ├── Services │ │ ├── Navigation │ │ │ ├── INavigationService.cs │ │ │ └── NavigationService.cs │ │ └── ServiceXFDeveloper.cs │ ├── ViewModels │ │ ├── Base │ │ │ └── ViewModelLocator.cs │ │ ├── BaseViewModel.cs │ │ └── MainMenuViewModel.cs │ └── Views │ │ ├── CustomNavigationView.xaml │ │ ├── CustomNavigationView.xaml.cs │ │ ├── MainMenuView.xaml │ │ └── MainMenuView.xaml.cs └── screenshots │ ├── Export.png │ ├── Interface.png │ ├── Location.png │ ├── create_project.PNG │ ├── nuget_packages.PNG │ ├── openexcel.png │ └── post_img.png └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | x64/ 19 | x86/ 20 | bld/ 21 | [Bb]in/ 22 | [Oo]bj/ 23 | [Ll]og/ 24 | 25 | # Visual Studio 2015 cache/options directory 26 | .vs/ 27 | # Uncomment if you have tasks that create the project's static files in wwwroot 28 | #wwwroot/ 29 | 30 | # MSTest test Results 31 | [Tt]est[Rr]esult*/ 32 | [Bb]uild[Ll]og.* 33 | 34 | # NUNIT 35 | *.VisualState.xml 36 | TestResult.xml 37 | 38 | # Build Results of an ATL Project 39 | [Dd]ebugPS/ 40 | [Rr]eleasePS/ 41 | dlldata.c 42 | 43 | # DNX 44 | project.lock.json 45 | project.fragment.lock.json 46 | artifacts/ 47 | 48 | *_i.c 49 | *_p.c 50 | *_i.h 51 | *.ilk 52 | *.meta 53 | *.obj 54 | *.pch 55 | *.pdb 56 | *.pgc 57 | *.pgd 58 | *.rsp 59 | *.sbr 60 | *.tlb 61 | *.tli 62 | *.tlh 63 | *.tmp 64 | *.tmp_proj 65 | *.log 66 | *.vspscc 67 | *.vssscc 68 | .builds 69 | *.pidb 70 | *.svclog 71 | *.scc 72 | 73 | # Chutzpah Test files 74 | _Chutzpah* 75 | 76 | # Visual C++ cache files 77 | ipch/ 78 | *.aps 79 | *.ncb 80 | *.opendb 81 | *.opensdf 82 | *.sdf 83 | *.cachefile 84 | *.VC.db 85 | *.VC.VC.opendb 86 | 87 | # Visual Studio profiler 88 | *.psess 89 | *.vsp 90 | *.vspx 91 | *.sap 92 | 93 | # TFS 2012 Local Workspace 94 | $tf/ 95 | 96 | # Guidance Automation Toolkit 97 | *.gpState 98 | 99 | # ReSharper is a .NET coding add-in 100 | _ReSharper*/ 101 | *.[Rr]e[Ss]harper 102 | *.DotSettings.user 103 | 104 | # JustCode is a .NET coding add-in 105 | .JustCode 106 | 107 | # TeamCity is a build add-in 108 | _TeamCity* 109 | 110 | # DotCover is a Code Coverage Tool 111 | *.dotCover 112 | 113 | # NCrunch 114 | _NCrunch_* 115 | .*crunch*.local.xml 116 | nCrunchTemp_* 117 | 118 | # MightyMoose 119 | *.mm.* 120 | AutoTest.Net/ 121 | 122 | # Web workbench (sass) 123 | .sass-cache/ 124 | 125 | # Installshield output folder 126 | [Ee]xpress/ 127 | 128 | # DocProject is a documentation generator add-in 129 | DocProject/buildhelp/ 130 | DocProject/Help/*.HxT 131 | DocProject/Help/*.HxC 132 | DocProject/Help/*.hhc 133 | DocProject/Help/*.hhk 134 | DocProject/Help/*.hhp 135 | DocProject/Help/Html2 136 | DocProject/Help/html 137 | 138 | # Click-Once directory 139 | publish/ 140 | 141 | # Publish Web Output 142 | *.[Pp]ublish.xml 143 | *.azurePubxml 144 | # TODO: Comment the next line if you want to checkin your web deploy settings 145 | # but database connection strings (with potential passwords) will be unencrypted 146 | #*.pubxml 147 | *.publishproj 148 | 149 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 150 | # checkin your Azure Web App publish settings, but sensitive information contained 151 | # in these scripts will be unencrypted 152 | PublishScripts/ 153 | 154 | # NuGet Packages 155 | *.nupkg 156 | # The packages folder can be ignored because of Package Restore 157 | **/packages/* 158 | # except build/, which is used as an MSBuild target. 159 | !**/packages/build/ 160 | # Uncomment if necessary however generally it will be regenerated when needed 161 | #!**/packages/repositories.config 162 | # NuGet v3's project.json files produces more ignoreable files 163 | *.nuget.props 164 | *.nuget.targets 165 | 166 | # Microsoft Azure Build Output 167 | csx/ 168 | *.build.csdef 169 | 170 | # Microsoft Azure Emulator 171 | ecf/ 172 | rcf/ 173 | 174 | # Windows Store app package directories and files 175 | AppPackages/ 176 | BundleArtifacts/ 177 | Package.StoreAssociation.xml 178 | _pkginfo.txt 179 | 180 | # Visual Studio cache files 181 | # files ending in .cache can be ignored 182 | *.[Cc]ache 183 | # but keep track of directories ending in .cache 184 | !*.[Cc]ache/ 185 | 186 | # Others 187 | ClientBin/ 188 | ~$* 189 | *~ 190 | *.dbmdl 191 | *.dbproj.schemaview 192 | *.jfm 193 | *.pfx 194 | *.publishsettings 195 | node_modules/ 196 | orleans.codegen.cs 197 | 198 | # Since there are multiple workflows, uncomment next line to ignore bower_components 199 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 200 | #bower_components/ 201 | 202 | # RIA/Silverlight projects 203 | Generated_Code/ 204 | 205 | # Backup & report files from converting an old project file 206 | # to a newer Visual Studio version. Backup files are not needed, 207 | # because we have git ;-) 208 | _UpgradeReport_Files/ 209 | Backup*/ 210 | UpgradeLog*.XML 211 | UpgradeLog*.htm 212 | 213 | # SQL Server files 214 | *.mdf 215 | *.ldf 216 | 217 | # Business Intelligence projects 218 | *.rdl.data 219 | *.bim.layout 220 | *.bim_*.settings 221 | 222 | # Microsoft Fakes 223 | FakesAssemblies/ 224 | 225 | # GhostDoc plugin setting file 226 | *.GhostDoc.xml 227 | 228 | # Node.js Tools for Visual Studio 229 | .ntvs_analysis.dat 230 | 231 | # Visual Studio 6 build log 232 | *.plg 233 | 234 | # Visual Studio 6 workspace options file 235 | *.opt 236 | 237 | # Visual Studio LightSwitch build output 238 | **/*.HTMLClient/GeneratedArtifacts 239 | **/*.DesktopClient/GeneratedArtifacts 240 | **/*.DesktopClient/ModelManifest.xml 241 | **/*.Server/GeneratedArtifacts 242 | **/*.Server/ModelManifest.xml 243 | _Pvt_Extensions 244 | 245 | # Paket dependency manager 246 | .paket/paket.exe 247 | paket-files/ 248 | 249 | # FAKE - F# Make 250 | .fake/ 251 | 252 | # JetBrains Rider 253 | .idea/ 254 | *.sln.iml 255 | 256 | # CodeRush 257 | .cr/ 258 | 259 | # Python Tools for Visual Studio (PTVS) 260 | __pycache__/ 261 | *.pyc -------------------------------------------------------------------------------- /ExportDataToExcel.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.28307.271 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExportDataToExcel.Android", "ExportDataToExcel\ExportDataToExcel.Android\ExportDataToExcel.Android.csproj", "{86A44418-7117-4494-8B41-C2E41A7E2911}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExportDataToExcel.iOS", "ExportDataToExcel\ExportDataToExcel.iOS\ExportDataToExcel.iOS.csproj", "{50DBAACA-F9EC-40F6-8328-382A74F0211A}" 9 | EndProject 10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExportDataToExcel.UWP", "ExportDataToExcel\ExportDataToExcel.UWP\ExportDataToExcel.UWP.csproj", "{06DD6E04-1D15-4A89-B316-DDFD686A723D}" 11 | EndProject 12 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExportDataToExcel", "ExportDataToExcel\ExportDataToExcel\ExportDataToExcel.csproj", "{790F1B0E-C136-46CF-85E3-B68D1206FAD4}" 13 | EndProject 14 | Global 15 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 16 | Ad-Hoc|Any CPU = Ad-Hoc|Any CPU 17 | Ad-Hoc|ARM = Ad-Hoc|ARM 18 | Ad-Hoc|iPhone = Ad-Hoc|iPhone 19 | Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator 20 | Ad-Hoc|x64 = Ad-Hoc|x64 21 | Ad-Hoc|x86 = Ad-Hoc|x86 22 | AppStore|Any CPU = AppStore|Any CPU 23 | AppStore|ARM = AppStore|ARM 24 | AppStore|iPhone = AppStore|iPhone 25 | AppStore|iPhoneSimulator = AppStore|iPhoneSimulator 26 | AppStore|x64 = AppStore|x64 27 | AppStore|x86 = AppStore|x86 28 | Debug|Any CPU = Debug|Any CPU 29 | Debug|ARM = Debug|ARM 30 | Debug|iPhone = Debug|iPhone 31 | Debug|iPhoneSimulator = Debug|iPhoneSimulator 32 | Debug|x64 = Debug|x64 33 | Debug|x86 = Debug|x86 34 | Release|Any CPU = Release|Any CPU 35 | Release|ARM = Release|ARM 36 | Release|iPhone = Release|iPhone 37 | Release|iPhoneSimulator = Release|iPhoneSimulator 38 | Release|x64 = Release|x64 39 | Release|x86 = Release|x86 40 | EndGlobalSection 41 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 42 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU 43 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU 44 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU 45 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU 46 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|ARM.Build.0 = Release|Any CPU 47 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU 48 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU 49 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU 50 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU 51 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU 52 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU 53 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU 54 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU 55 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|x64.Build.0 = Release|Any CPU 56 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU 57 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU 58 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|x86.Build.0 = Release|Any CPU 59 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU 60 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|Any CPU.ActiveCfg = Release|Any CPU 61 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|Any CPU.Build.0 = Release|Any CPU 62 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|Any CPU.Deploy.0 = Release|Any CPU 63 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|ARM.ActiveCfg = Release|Any CPU 64 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|ARM.Build.0 = Release|Any CPU 65 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|ARM.Deploy.0 = Release|Any CPU 66 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|iPhone.ActiveCfg = Release|Any CPU 67 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|iPhone.Build.0 = Release|Any CPU 68 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|iPhone.Deploy.0 = Release|Any CPU 69 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU 70 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU 71 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU 72 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|x64.ActiveCfg = Release|Any CPU 73 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|x64.Build.0 = Release|Any CPU 74 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|x64.Deploy.0 = Release|Any CPU 75 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|x86.ActiveCfg = Release|Any CPU 76 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|x86.Build.0 = Release|Any CPU 77 | {86A44418-7117-4494-8B41-C2E41A7E2911}.AppStore|x86.Deploy.0 = Release|Any CPU 78 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 79 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|Any CPU.Build.0 = Debug|Any CPU 80 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|Any CPU.Deploy.0 = Debug|Any CPU 81 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|ARM.ActiveCfg = Debug|Any CPU 82 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|ARM.Build.0 = Debug|Any CPU 83 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|ARM.Deploy.0 = Debug|Any CPU 84 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|iPhone.ActiveCfg = Debug|Any CPU 85 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|iPhone.Build.0 = Debug|Any CPU 86 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|iPhone.Deploy.0 = Debug|Any CPU 87 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU 88 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU 89 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU 90 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|x64.ActiveCfg = Debug|Any CPU 91 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|x64.Build.0 = Debug|Any CPU 92 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|x64.Deploy.0 = Debug|Any CPU 93 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|x86.ActiveCfg = Debug|Any CPU 94 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|x86.Build.0 = Debug|Any CPU 95 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Debug|x86.Deploy.0 = Debug|Any CPU 96 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|Any CPU.ActiveCfg = Release|Any CPU 97 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|Any CPU.Build.0 = Release|Any CPU 98 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|Any CPU.Deploy.0 = Release|Any CPU 99 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|ARM.ActiveCfg = Release|Any CPU 100 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|ARM.Build.0 = Release|Any CPU 101 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|ARM.Deploy.0 = Release|Any CPU 102 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|iPhone.ActiveCfg = Release|Any CPU 103 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|iPhone.Build.0 = Release|Any CPU 104 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|iPhone.Deploy.0 = Release|Any CPU 105 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU 106 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|iPhoneSimulator.Build.0 = Release|Any CPU 107 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU 108 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|x64.ActiveCfg = Release|Any CPU 109 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|x64.Build.0 = Release|Any CPU 110 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|x64.Deploy.0 = Release|Any CPU 111 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|x86.ActiveCfg = Release|Any CPU 112 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|x86.Build.0 = Release|Any CPU 113 | {86A44418-7117-4494-8B41-C2E41A7E2911}.Release|x86.Deploy.0 = Release|Any CPU 114 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone 115 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|Any CPU.Build.0 = Ad-Hoc|iPhone 116 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|Any CPU.Deploy.0 = Ad-Hoc|iPhone 117 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone 118 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|ARM.Build.0 = Ad-Hoc|iPhone 119 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|ARM.Deploy.0 = Ad-Hoc|iPhone 120 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone 121 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone 122 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|iPhone.Deploy.0 = Ad-Hoc|iPhone 123 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator 124 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator 125 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Ad-Hoc|iPhoneSimulator 126 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone 127 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|x64.Build.0 = Ad-Hoc|iPhone 128 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|x64.Deploy.0 = Ad-Hoc|iPhone 129 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone 130 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|x86.Build.0 = Ad-Hoc|iPhone 131 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Ad-Hoc|x86.Deploy.0 = Ad-Hoc|iPhone 132 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone 133 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|Any CPU.Build.0 = AppStore|iPhone 134 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|Any CPU.Deploy.0 = AppStore|iPhone 135 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|ARM.ActiveCfg = AppStore|iPhone 136 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|ARM.Build.0 = AppStore|iPhone 137 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|ARM.Deploy.0 = AppStore|iPhone 138 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|iPhone.ActiveCfg = AppStore|iPhone 139 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|iPhone.Build.0 = AppStore|iPhone 140 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|iPhone.Deploy.0 = AppStore|iPhone 141 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator 142 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator 143 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|iPhoneSimulator.Deploy.0 = AppStore|iPhoneSimulator 144 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|x64.ActiveCfg = AppStore|iPhone 145 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|x64.Build.0 = AppStore|iPhone 146 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|x64.Deploy.0 = AppStore|iPhone 147 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|x86.ActiveCfg = AppStore|iPhone 148 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|x86.Build.0 = AppStore|iPhone 149 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.AppStore|x86.Deploy.0 = AppStore|iPhone 150 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator 151 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator 152 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|Any CPU.Deploy.0 = Debug|iPhoneSimulator 153 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|ARM.ActiveCfg = Debug|iPhone 154 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|ARM.Build.0 = Debug|iPhone 155 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|ARM.Deploy.0 = Debug|iPhone 156 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|iPhone.ActiveCfg = Debug|iPhone 157 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|iPhone.Build.0 = Debug|iPhone 158 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|iPhone.Deploy.0 = Debug|iPhone 159 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator 160 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator 161 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|iPhoneSimulator.Deploy.0 = Debug|iPhoneSimulator 162 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|x64.ActiveCfg = Debug|iPhone 163 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|x64.Build.0 = Debug|iPhone 164 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|x64.Deploy.0 = Debug|iPhone 165 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|x86.ActiveCfg = Debug|iPhone 166 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|x86.Build.0 = Debug|iPhone 167 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Debug|x86.Deploy.0 = Debug|iPhone 168 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|Any CPU.ActiveCfg = Release|iPhone 169 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|Any CPU.Build.0 = Release|iPhone 170 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|Any CPU.Deploy.0 = Release|iPhone 171 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|ARM.ActiveCfg = Release|iPhone 172 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|ARM.Build.0 = Release|iPhone 173 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|ARM.Deploy.0 = Release|iPhone 174 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|iPhone.ActiveCfg = Release|iPhone 175 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|iPhone.Build.0 = Release|iPhone 176 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|iPhone.Deploy.0 = Release|iPhone 177 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator 178 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator 179 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|iPhoneSimulator.Deploy.0 = Release|iPhoneSimulator 180 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|x64.ActiveCfg = Release|iPhone 181 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|x64.Build.0 = Release|iPhone 182 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|x64.Deploy.0 = Release|iPhone 183 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|x86.ActiveCfg = Release|iPhone 184 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|x86.Build.0 = Release|iPhone 185 | {50DBAACA-F9EC-40F6-8328-382A74F0211A}.Release|x86.Deploy.0 = Release|iPhone 186 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|Any CPU.ActiveCfg = Release|x86 187 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|Any CPU.Build.0 = Release|x86 188 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|Any CPU.Deploy.0 = Release|x86 189 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|ARM.ActiveCfg = Release|ARM 190 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|ARM.Build.0 = Release|ARM 191 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|ARM.Deploy.0 = Release|ARM 192 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|iPhone.ActiveCfg = Release|x86 193 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|iPhone.Build.0 = Release|x86 194 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|iPhone.Deploy.0 = Release|x86 195 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x86 196 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x86 197 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x86 198 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|x64.ActiveCfg = Release|x64 199 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|x64.Build.0 = Release|x64 200 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|x64.Deploy.0 = Release|x64 201 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|x86.ActiveCfg = Release|x86 202 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|x86.Build.0 = Release|x86 203 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Ad-Hoc|x86.Deploy.0 = Release|x86 204 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|Any CPU.ActiveCfg = Release|x86 205 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|Any CPU.Build.0 = Release|x86 206 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|Any CPU.Deploy.0 = Release|x86 207 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|ARM.ActiveCfg = Release|ARM 208 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|ARM.Build.0 = Release|ARM 209 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|ARM.Deploy.0 = Release|ARM 210 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|iPhone.ActiveCfg = Release|x86 211 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|iPhone.Build.0 = Release|x86 212 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|iPhone.Deploy.0 = Release|x86 213 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|iPhoneSimulator.ActiveCfg = Release|x86 214 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|iPhoneSimulator.Build.0 = Release|x86 215 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|iPhoneSimulator.Deploy.0 = Release|x86 216 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|x64.ActiveCfg = Release|x64 217 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|x64.Build.0 = Release|x64 218 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|x64.Deploy.0 = Release|x64 219 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|x86.ActiveCfg = Release|x86 220 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|x86.Build.0 = Release|x86 221 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.AppStore|x86.Deploy.0 = Release|x86 222 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|Any CPU.ActiveCfg = Debug|x86 223 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|Any CPU.Build.0 = Debug|x86 224 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|Any CPU.Deploy.0 = Debug|x86 225 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|ARM.ActiveCfg = Debug|ARM 226 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|ARM.Build.0 = Debug|ARM 227 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|ARM.Deploy.0 = Debug|ARM 228 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|iPhone.ActiveCfg = Debug|x86 229 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|iPhone.Build.0 = Debug|x86 230 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|iPhone.Deploy.0 = Debug|x86 231 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 232 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|iPhoneSimulator.Build.0 = Debug|x86 233 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|iPhoneSimulator.Deploy.0 = Debug|x86 234 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|x64.ActiveCfg = Debug|x64 235 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|x64.Build.0 = Debug|x64 236 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|x64.Deploy.0 = Debug|x64 237 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|x86.ActiveCfg = Debug|x86 238 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|x86.Build.0 = Debug|x86 239 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Debug|x86.Deploy.0 = Debug|x86 240 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|Any CPU.ActiveCfg = Release|x86 241 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|Any CPU.Build.0 = Release|x86 242 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|Any CPU.Deploy.0 = Release|x86 243 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|ARM.ActiveCfg = Release|ARM 244 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|ARM.Build.0 = Release|ARM 245 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|ARM.Deploy.0 = Release|ARM 246 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|iPhone.ActiveCfg = Release|x86 247 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|iPhone.Build.0 = Release|x86 248 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|iPhone.Deploy.0 = Release|x86 249 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|iPhoneSimulator.ActiveCfg = Release|x86 250 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|iPhoneSimulator.Build.0 = Release|x86 251 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|iPhoneSimulator.Deploy.0 = Release|x86 252 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|x64.ActiveCfg = Release|x64 253 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|x64.Build.0 = Release|x64 254 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|x64.Deploy.0 = Release|x64 255 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|x86.ActiveCfg = Release|x86 256 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|x86.Build.0 = Release|x86 257 | {06DD6E04-1D15-4A89-B316-DDFD686A723D}.Release|x86.Deploy.0 = Release|x86 258 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU 259 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU 260 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|Any CPU.Deploy.0 = Debug|Any CPU 261 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU 262 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU 263 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|ARM.Deploy.0 = Debug|Any CPU 264 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU 265 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU 266 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|iPhone.Deploy.0 = Debug|Any CPU 267 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU 268 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU 269 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Debug|Any CPU 270 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU 271 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|x64.Build.0 = Debug|Any CPU 272 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|x64.Deploy.0 = Debug|Any CPU 273 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU 274 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|x86.Build.0 = Debug|Any CPU 275 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Ad-Hoc|x86.Deploy.0 = Debug|Any CPU 276 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU 277 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|Any CPU.Build.0 = Debug|Any CPU 278 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|Any CPU.Deploy.0 = Debug|Any CPU 279 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|ARM.ActiveCfg = Debug|Any CPU 280 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|ARM.Build.0 = Debug|Any CPU 281 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|ARM.Deploy.0 = Debug|Any CPU 282 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|iPhone.ActiveCfg = Debug|Any CPU 283 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|iPhone.Build.0 = Debug|Any CPU 284 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|iPhone.Deploy.0 = Debug|Any CPU 285 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU 286 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU 287 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|iPhoneSimulator.Deploy.0 = Debug|Any CPU 288 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|x64.ActiveCfg = Debug|Any CPU 289 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|x64.Build.0 = Debug|Any CPU 290 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|x64.Deploy.0 = Debug|Any CPU 291 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|x86.ActiveCfg = Debug|Any CPU 292 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|x86.Build.0 = Debug|Any CPU 293 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.AppStore|x86.Deploy.0 = Debug|Any CPU 294 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 295 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|Any CPU.Build.0 = Debug|Any CPU 296 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|Any CPU.Deploy.0 = Debug|Any CPU 297 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|ARM.ActiveCfg = Debug|Any CPU 298 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|ARM.Build.0 = Debug|Any CPU 299 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|ARM.Deploy.0 = Debug|Any CPU 300 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|iPhone.ActiveCfg = Debug|Any CPU 301 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|iPhone.Build.0 = Debug|Any CPU 302 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|iPhone.Deploy.0 = Debug|Any CPU 303 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU 304 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU 305 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU 306 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|x64.ActiveCfg = Debug|Any CPU 307 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|x64.Build.0 = Debug|Any CPU 308 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|x64.Deploy.0 = Debug|Any CPU 309 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|x86.ActiveCfg = Debug|Any CPU 310 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|x86.Build.0 = Debug|Any CPU 311 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Debug|x86.Deploy.0 = Debug|Any CPU 312 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|Any CPU.ActiveCfg = Release|Any CPU 313 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|Any CPU.Build.0 = Release|Any CPU 314 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|Any CPU.Deploy.0 = Release|Any CPU 315 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|ARM.ActiveCfg = Release|Any CPU 316 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|ARM.Build.0 = Release|Any CPU 317 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|ARM.Deploy.0 = Release|Any CPU 318 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|iPhone.ActiveCfg = Release|Any CPU 319 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|iPhone.Build.0 = Release|Any CPU 320 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|iPhone.Deploy.0 = Release|Any CPU 321 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU 322 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|iPhoneSimulator.Build.0 = Release|Any CPU 323 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU 324 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|x64.ActiveCfg = Release|Any CPU 325 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|x64.Build.0 = Release|Any CPU 326 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|x64.Deploy.0 = Release|Any CPU 327 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|x86.ActiveCfg = Release|Any CPU 328 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|x86.Build.0 = Release|Any CPU 329 | {790F1B0E-C136-46CF-85E3-B68D1206FAD4}.Release|x86.Deploy.0 = Release|Any CPU 330 | EndGlobalSection 331 | GlobalSection(SolutionProperties) = preSolution 332 | HideSolutionNode = FALSE 333 | EndGlobalSection 334 | GlobalSection(ExtensibilityGlobals) = postSolution 335 | SolutionGuid = {24913CDD-5875-4A84-8326-B60D39F021BF} 336 | EndGlobalSection 337 | EndGlobal 338 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Assets/AboutAssets.txt: -------------------------------------------------------------------------------- 1 | Any raw assets you want to be deployed with your application can be placed in 2 | this directory (and child directories) and given a Build Action of "AndroidAsset". 3 | 4 | These files will be deployed with you package and will be accessible using Android's 5 | AssetManager, like this: 6 | 7 | public class ReadAsset : Activity 8 | { 9 | protected override void OnCreate (Bundle bundle) 10 | { 11 | base.OnCreate (bundle); 12 | 13 | InputStream input = Assets.Open ("my_asset.txt"); 14 | } 15 | } 16 | 17 | Additionally, some Android functions will automatically load asset files: 18 | 19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); 20 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/ExportDataToExcel.Android.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | {86A44418-7117-4494-8B41-C2E41A7E2911} 7 | {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 8 | {c9e5eea5-ca05-42a1-839b-61506e0a37df} 9 | Library 10 | ExportDataToExcel.Droid 11 | ExportDataToExcel.Android 12 | True 13 | Resources\Resource.designer.cs 14 | Resource 15 | Properties\AndroidManifest.xml 16 | Resources 17 | Assets 18 | false 19 | v8.1 20 | Xamarin.Android.Net.AndroidClientHandler 21 | 22 | 23 | 24 | 25 | true 26 | portable 27 | false 28 | bin\Debug 29 | DEBUG; 30 | prompt 31 | 4 32 | None 33 | false 34 | false 35 | false 36 | 37 | 38 | true 39 | pdbonly 40 | true 41 | bin\Release 42 | prompt 43 | 4 44 | true 45 | false 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 4.9.1 57 | 58 | 59 | 0.94.2 60 | 61 | 62 | 2.9.0 63 | 64 | 65 | 3.0.0.12 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | {DA3D241D-D6C3-4B17-B7EC-410C72B7284A} 112 | ExportDataToExcel 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/ExportFilesToLocation.cs: -------------------------------------------------------------------------------- 1 | using ExportDataToExcel.Droid; 2 | using ExportDataToExcel.Interfaces; 3 | using Java.IO; 4 | using Xamarin.Forms; 5 | 6 | [assembly: Dependency(typeof(ExportFilesToLocation))] 7 | namespace ExportDataToExcel.Droid 8 | { 9 | public class ExportFilesToLocation : IExportFilesToLocation 10 | { 11 | public ExportFilesToLocation() 12 | { 13 | } 14 | 15 | public string GetFolderLocation() 16 | { 17 | string root = null; 18 | if (Android.OS.Environment.IsExternalStorageEmulated) 19 | { 20 | root = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath; 21 | } 22 | else 23 | root = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments); 24 | 25 | File myDir = new File(root + "/Exports"); 26 | if(!myDir.Exists()) 27 | myDir.Mkdir(); 28 | 29 | return root + "/Exports/"; 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/MainActivity.cs: -------------------------------------------------------------------------------- 1 | using Android.App; 2 | using Android.Content.PM; 3 | using Android.OS; 4 | using Plugin.Permissions; 5 | using Xamarin.Forms; 6 | 7 | namespace ExportDataToExcel.Droid 8 | { 9 | [Activity(Label = "ExportDataToExcel", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] 10 | public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity 11 | { 12 | protected override void OnCreate(Bundle bundle) 13 | { 14 | TabLayoutResource = Resource.Layout.Tabbar; 15 | ToolbarResource = Resource.Layout.Toolbar; 16 | 17 | base.OnCreate(bundle); 18 | 19 | Plugin.CurrentActivity.CrossCurrentActivity.Current.Init(this, bundle); 20 | Forms.Init(this, bundle); 21 | LoadApplication(new App()); 22 | } 23 | 24 | public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults) 25 | { 26 | PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults); 27 | base.OnRequestPermissionsResult(requestCode, permissions, grantResults); 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Properties/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | using Android.App; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("ExportDataToExcel.Android")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("ExportDataToExcel.Android")] 13 | [assembly: AssemblyCopyright("Copyright © 2014")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | [assembly: ComVisible(false)] 17 | 18 | // Version information for an assembly consists of the following four values: 19 | // 20 | // Major Version 21 | // Minor Version 22 | // Build Number 23 | // Revision 24 | // 25 | // You can specify all the values or you can default the Build and Revision Numbers 26 | // by using the '*' as shown below: 27 | // [assembly: AssemblyVersion("1.0.*")] 28 | [assembly: AssemblyVersion("1.0.0.0")] 29 | [assembly: AssemblyFileVersion("1.0.0.0")] 30 | 31 | // Add some common permissions, these can be removed if not needed 32 | [assembly: UsesPermission(Android.Manifest.Permission.Internet)] 33 | [assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] 34 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/AboutResources.txt: -------------------------------------------------------------------------------- 1 | Images, layout descriptions, binary blobs and string dictionaries can be included 2 | in your application as resource files. Various Android APIs are designed to 3 | operate on the resource IDs instead of dealing with images, strings or binary blobs 4 | directly. 5 | 6 | For example, a sample Android app that contains a user interface layout (main.xml), 7 | an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) 8 | would keep its resources in the "Resources" directory of the application: 9 | 10 | Resources/ 11 | drawable-hdpi/ 12 | icon.png 13 | 14 | drawable-ldpi/ 15 | icon.png 16 | 17 | drawable-mdpi/ 18 | icon.png 19 | 20 | layout/ 21 | main.xml 22 | 23 | values/ 24 | strings.xml 25 | 26 | In order to get the build system to recognize Android resources, set the build action to 27 | "AndroidResource". The native Android APIs do not operate directly with filenames, but 28 | instead operate on resource IDs. When you compile an Android application that uses resources, 29 | the build system will package the resources for distribution and generate a class called 30 | "Resource" that contains the tokens for each one of the resources included. For example, 31 | for the above Resources layout, this is what the Resource class would expose: 32 | 33 | public class Resource { 34 | public class drawable { 35 | public const int icon = 0x123; 36 | } 37 | 38 | public class layout { 39 | public const int main = 0x456; 40 | } 41 | 42 | public class strings { 43 | public const int first_string = 0xabc; 44 | public const int second_string = 0xbcd; 45 | } 46 | } 47 | 48 | You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main 49 | to reference the layout/main.xml file, or Resource.strings.first_string to reference the first 50 | string in the dictionary file values/strings.xml. 51 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/drawable/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.Android/Resources/drawable/avatar.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/drawable/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.Android/Resources/drawable/right.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/drawable/shareexcel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.Android/Resources/drawable/shareexcel.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/drawable/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.Android/Resources/drawable/user.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/layout/Tabbar.axml: -------------------------------------------------------------------------------- 1 | 2 | 12 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/layout/Toolbar.axml: -------------------------------------------------------------------------------- 1 | 9 | 10 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-anydpi-v26/icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-anydpi-v26/icon_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-hdpi/icon.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-hdpi/launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-hdpi/launcher_foreground.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-mdpi/icon.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-mdpi/launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-mdpi/launcher_foreground.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-xhdpi/icon.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-xhdpi/launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-xhdpi/launcher_foreground.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-xxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-xxhdpi/icon.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-xxhdpi/launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-xxhdpi/launcher_foreground.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-xxxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-xxxhdpi/icon.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #2b3391 4 | #525ABB 5 | #303F9F 6 | #FF4081 7 | 8 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.Android/Resources/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 26 | 27 | 30 | 31 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/App.xaml: -------------------------------------------------------------------------------- 1 |  7 | 8 | 9 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Runtime.InteropServices.WindowsRuntime; 6 | using Windows.ApplicationModel; 7 | using Windows.ApplicationModel.Activation; 8 | using Windows.Foundation; 9 | using Windows.Foundation.Collections; 10 | using Windows.UI.Xaml; 11 | using Windows.UI.Xaml.Controls; 12 | using Windows.UI.Xaml.Controls.Primitives; 13 | using Windows.UI.Xaml.Data; 14 | using Windows.UI.Xaml.Input; 15 | using Windows.UI.Xaml.Media; 16 | using Windows.UI.Xaml.Navigation; 17 | 18 | namespace ExportDataToExcel.UWP 19 | { 20 | /// 21 | /// Provides application-specific behavior to supplement the default Application class. 22 | /// 23 | sealed partial class App : Application 24 | { 25 | /// 26 | /// Initializes the singleton application object. This is the first line of authored code 27 | /// executed, and as such is the logical equivalent of main() or WinMain(). 28 | /// 29 | public App() 30 | { 31 | this.InitializeComponent(); 32 | this.Suspending += OnSuspending; 33 | } 34 | 35 | /// 36 | /// Invoked when the application is launched normally by the end user. Other entry points 37 | /// will be used such as when the application is launched to open a specific file. 38 | /// 39 | /// Details about the launch request and process. 40 | protected override void OnLaunched(LaunchActivatedEventArgs e) 41 | { 42 | 43 | 44 | Frame rootFrame = Window.Current.Content as Frame; 45 | 46 | // Do not repeat app initialization when the Window already has content, 47 | // just ensure that the window is active 48 | if (rootFrame == null) 49 | { 50 | // Create a Frame to act as the navigation context and navigate to the first page 51 | rootFrame = new Frame(); 52 | 53 | rootFrame.NavigationFailed += OnNavigationFailed; 54 | 55 | Xamarin.Forms.Forms.Init(e); 56 | 57 | if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) 58 | { 59 | //TODO: Load state from previously suspended application 60 | } 61 | 62 | // Place the frame in the current Window 63 | Window.Current.Content = rootFrame; 64 | } 65 | 66 | if (rootFrame.Content == null) 67 | { 68 | // When the navigation stack isn't restored navigate to the first page, 69 | // configuring the new page by passing required information as a navigation 70 | // parameter 71 | rootFrame.Navigate(typeof(MainPage), e.Arguments); 72 | } 73 | // Ensure the current window is active 74 | Window.Current.Activate(); 75 | } 76 | 77 | /// 78 | /// Invoked when Navigation to a certain page fails 79 | /// 80 | /// The Frame which failed navigation 81 | /// Details about the navigation failure 82 | void OnNavigationFailed(object sender, NavigationFailedEventArgs e) 83 | { 84 | throw new Exception("Failed to load Page " + e.SourcePageType.FullName); 85 | } 86 | 87 | /// 88 | /// Invoked when application execution is being suspended. Application state is saved 89 | /// without knowing whether the application will be terminated or resumed with the contents 90 | /// of memory still intact. 91 | /// 92 | /// The source of the suspend request. 93 | /// Details about the suspend request. 94 | private void OnSuspending(object sender, SuspendingEventArgs e) 95 | { 96 | var deferral = e.SuspendingOperation.GetDeferral(); 97 | //TODO: Save application state and stop any background activity 98 | deferral.Complete(); 99 | } 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/LargeTile.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/LargeTile.scale-100.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/LargeTile.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/LargeTile.scale-200.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/LargeTile.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/LargeTile.scale-400.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/SmallTile.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/SmallTile.scale-100.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/SmallTile.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/SmallTile.scale-200.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/SmallTile.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/SmallTile.scale-400.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/SplashScreen.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/SplashScreen.scale-100.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/SplashScreen.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/SplashScreen.scale-400.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square150x150Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square150x150Logo.scale-100.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square150x150Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square150x150Logo.scale-400.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.scale-100.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.scale-400.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.targetsize-16.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.targetsize-256.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/Square44x44Logo.targetsize-48.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/StoreLogo.backup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/StoreLogo.backup.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/StoreLogo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/StoreLogo.scale-100.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/StoreLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/StoreLogo.scale-200.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/StoreLogo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/StoreLogo.scale-400.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/Wide310x150Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/Wide310x150Logo.scale-100.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/Wide310x150Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/Wide310x150Logo.scale-400.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/avatar.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/right.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/shareexcel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/shareexcel.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Assets/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.UWP/Assets/user.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/ExportDataToExcel.UWP.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | x86 7 | {06DD6E04-1D15-4A89-B316-DDFD686A723D} 8 | AppContainerExe 9 | Properties 10 | ExportDataToExcel.UWP 11 | ExportDataToExcel.UWP 12 | en-US 13 | UAP 14 | 10.0.17134.0 15 | 10.0.16299.0 16 | 14 17 | true 18 | 512 19 | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 20 | ExportDataToExcel.UWP_TemporaryKey.pfx 21 | 22 | 23 | true 24 | bin\ARM\Debug\ 25 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 26 | ;2008 27 | full 28 | ARM 29 | false 30 | prompt 31 | true 32 | 33 | 34 | bin\ARM\Release\ 35 | TRACE;NETFX_CORE;WINDOWS_UWP 36 | true 37 | ;2008 38 | pdbonly 39 | ARM 40 | false 41 | prompt 42 | true 43 | true 44 | 45 | 46 | true 47 | bin\x64\Debug\ 48 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 49 | ;2008 50 | full 51 | x64 52 | false 53 | prompt 54 | true 55 | 56 | 57 | bin\x64\Release\ 58 | TRACE;NETFX_CORE;WINDOWS_UWP 59 | true 60 | ;2008 61 | pdbonly 62 | x64 63 | false 64 | prompt 65 | true 66 | true 67 | 68 | 69 | true 70 | bin\x86\Debug\ 71 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 72 | ;2008 73 | full 74 | x86 75 | false 76 | prompt 77 | true 78 | 79 | 80 | bin\x86\Release\ 81 | TRACE;NETFX_CORE;WINDOWS_UWP 82 | true 83 | ;2008 84 | pdbonly 85 | x86 86 | false 87 | prompt 88 | true 89 | true 90 | 91 | 92 | 93 | App.xaml 94 | 95 | 96 | MainPage.xaml 97 | 98 | 99 | 100 | 101 | 102 | Designer 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | MSBuild:Compile 142 | Designer 143 | 144 | 145 | MSBuild:Compile 146 | Designer 147 | 148 | 149 | 150 | 151 | 4.9.1 152 | 153 | 154 | 0.94.2 155 | 156 | 157 | 2.9.0 158 | 159 | 160 | 3.0.0.12 161 | 162 | 163 | 164 | 165 | 166 | 167 | {DA3D241D-D6C3-4B17-B7EC-410C72B7284A} 168 | ExportDataToExcel 169 | 170 | 171 | 172 | 14.0 173 | 174 | 175 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/MainPage.xaml: -------------------------------------------------------------------------------- 1 |  11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/MainPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Runtime.InteropServices.WindowsRuntime; 6 | using Windows.Foundation; 7 | using Windows.Foundation.Collections; 8 | using Windows.UI.Xaml; 9 | using Windows.UI.Xaml.Controls; 10 | using Windows.UI.Xaml.Controls.Primitives; 11 | using Windows.UI.Xaml.Data; 12 | using Windows.UI.Xaml.Input; 13 | using Windows.UI.Xaml.Media; 14 | using Windows.UI.Xaml.Navigation; 15 | 16 | namespace ExportDataToExcel.UWP 17 | { 18 | public sealed partial class MainPage 19 | { 20 | public MainPage() 21 | { 22 | this.InitializeComponent(); 23 | 24 | LoadApplication(new ExportDataToExcel.App()); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Package.appxmanifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 8 | 9 | 13 | 14 | 15 | 16 | 17 | ExportDataToExcel.UWP 18 | 13a9ad47-a36a-4ba5-ad15-6a2577299512 19 | Assets\StoreLogo.png 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 34 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("ExportDataToExcel.UWP")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("ExportDataToExcel.UWP")] 13 | [assembly: AssemblyCopyright("Copyright © 2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Version information for an assembly consists of the following four values: 18 | // 19 | // Major Version 20 | // Minor Version 21 | // Build Number 22 | // Revision 23 | // 24 | // You can specify all the values or you can default the Build and Revision Numbers 25 | // by using the '*' as shown below: 26 | // [assembly: AssemblyVersion("1.0.*")] 27 | [assembly: AssemblyVersion("1.0.0.0")] 28 | [assembly: AssemblyFileVersion("1.0.0.0")] 29 | [assembly: ComVisible(false)] -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.UWP/Properties/Default.rd.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/AppDelegate.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | using Foundation; 6 | using UIKit; 7 | 8 | namespace ExportDataToExcel.iOS 9 | { 10 | // The UIApplicationDelegate for the application. This class is responsible for launching the 11 | // User Interface of the application, as well as listening (and optionally responding) to 12 | // application events from iOS. 13 | [Register("AppDelegate")] 14 | public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate 15 | { 16 | // 17 | // This method is invoked when the application has loaded and is ready to run. In this 18 | // method you should instantiate the window, load the UI into it and then make the window 19 | // visible. 20 | // 21 | // You have 17 seconds to return from this method, or iOS will terminate your application. 22 | // 23 | public override bool FinishedLaunching(UIApplication app, NSDictionary options) 24 | { 25 | global::Xamarin.Forms.Forms.Init(); 26 | LoadApplication(new App()); 27 | 28 | return base.FinishedLaunching(app, options); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images": [ 3 | { 4 | "scale": "2x", 5 | "size": "20x20", 6 | "idiom": "iphone", 7 | "filename": "Icon40.png" 8 | }, 9 | { 10 | "scale": "3x", 11 | "size": "20x20", 12 | "idiom": "iphone", 13 | "filename": "Icon60.png" 14 | }, 15 | { 16 | "scale": "2x", 17 | "size": "29x29", 18 | "idiom": "iphone", 19 | "filename": "Icon58.png" 20 | }, 21 | { 22 | "scale": "3x", 23 | "size": "29x29", 24 | "idiom": "iphone", 25 | "filename": "Icon87.png" 26 | }, 27 | { 28 | "scale": "2x", 29 | "size": "40x40", 30 | "idiom": "iphone", 31 | "filename": "Icon80.png" 32 | }, 33 | { 34 | "scale": "3x", 35 | "size": "40x40", 36 | "idiom": "iphone", 37 | "filename": "Icon120.png" 38 | }, 39 | { 40 | "scale": "2x", 41 | "size": "60x60", 42 | "idiom": "iphone", 43 | "filename": "Icon120.png" 44 | }, 45 | { 46 | "scale": "3x", 47 | "size": "60x60", 48 | "idiom": "iphone", 49 | "filename": "Icon180.png" 50 | }, 51 | { 52 | "scale": "1x", 53 | "size": "20x20", 54 | "idiom": "ipad", 55 | "filename": "Icon20.png" 56 | }, 57 | { 58 | "scale": "2x", 59 | "size": "20x20", 60 | "idiom": "ipad", 61 | "filename": "Icon40.png" 62 | }, 63 | { 64 | "scale": "1x", 65 | "size": "29x29", 66 | "idiom": "ipad", 67 | "filename": "Icon29.png" 68 | }, 69 | { 70 | "scale": "2x", 71 | "size": "29x29", 72 | "idiom": "ipad", 73 | "filename": "Icon58.png" 74 | }, 75 | { 76 | "scale": "1x", 77 | "size": "40x40", 78 | "idiom": "ipad", 79 | "filename": "Icon40.png" 80 | }, 81 | { 82 | "scale": "2x", 83 | "size": "40x40", 84 | "idiom": "ipad", 85 | "filename": "Icon80.png" 86 | }, 87 | { 88 | "scale": "1x", 89 | "size": "76x76", 90 | "idiom": "ipad", 91 | "filename": "Icon76.png" 92 | }, 93 | { 94 | "scale": "2x", 95 | "size": "76x76", 96 | "idiom": "ipad", 97 | "filename": "Icon152.png" 98 | }, 99 | { 100 | "scale": "2x", 101 | "size": "83.5x83.5", 102 | "idiom": "ipad", 103 | "filename": "Icon167.png" 104 | }, 105 | { 106 | "scale": "1x", 107 | "size": "1024x1024", 108 | "idiom": "ios-marketing", 109 | "filename": "Icon1024.png" 110 | } 111 | ], 112 | "properties": {}, 113 | "info": { 114 | "version": 1, 115 | "author": "xcode" 116 | } 117 | } -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Entitlements.plist: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/ExportDataToExcel.iOS.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | iPhoneSimulator 6 | 8.0.30703 7 | 2.0 8 | {50DBAACA-F9EC-40F6-8328-382A74F0211A} 9 | {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 10 | {6143fdea-f3c2-4a09-aafa-6e230626515e} 11 | Exe 12 | ExportDataToExcel.iOS 13 | Resources 14 | ExportDataToExcel.iOS 15 | NSUrlSessionHandler 16 | 17 | 18 | 19 | 20 | true 21 | full 22 | false 23 | bin\iPhoneSimulator\Debug 24 | DEBUG 25 | prompt 26 | 4 27 | false 28 | x86_64 29 | None 30 | true 31 | 32 | 33 | none 34 | true 35 | bin\iPhoneSimulator\Release 36 | prompt 37 | 4 38 | None 39 | x86_64 40 | false 41 | 42 | 43 | true 44 | full 45 | false 46 | bin\iPhone\Debug 47 | DEBUG 48 | prompt 49 | 4 50 | false 51 | ARM64 52 | iPhone Developer 53 | true 54 | Entitlements.plist 55 | 56 | 57 | none 58 | true 59 | bin\iPhone\Release 60 | prompt 61 | 4 62 | ARM64 63 | false 64 | iPhone Developer 65 | Entitlements.plist 66 | 67 | 68 | none 69 | True 70 | bin\iPhone\Ad-Hoc 71 | prompt 72 | 4 73 | False 74 | ARM64 75 | True 76 | Automatic:AdHoc 77 | iPhone Distribution 78 | Entitlements.plist 79 | 80 | 81 | none 82 | True 83 | bin\iPhone\AppStore 84 | prompt 85 | 4 86 | False 87 | ARM64 88 | Automatic:AppStore 89 | iPhone Distribution 90 | Entitlements.plist 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | false 104 | 105 | 106 | false 107 | 108 | 109 | false 110 | 111 | 112 | false 113 | 114 | 115 | false 116 | 117 | 118 | false 119 | 120 | 121 | false 122 | 123 | 124 | false 125 | 126 | 127 | false 128 | 129 | 130 | false 131 | 132 | 133 | false 134 | 135 | 136 | false 137 | 138 | 139 | false 140 | 141 | 142 | false 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 4.9.1 154 | 155 | 156 | 0.94.2 157 | 158 | 159 | 2.9.0 160 | 161 | 162 | 3.0.0.12 163 | 164 | 165 | 166 | 167 | 168 | 169 | {DA3D241D-D6C3-4B17-B7EC-410C72B7284A} 170 | ExportDataToExcel 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/ExportFilesToLocation.cs: -------------------------------------------------------------------------------- 1 | using ExportDataToExcel.Interfaces; 2 | using ExportDataToExcel.iOS; 3 | using Xamarin.Forms; 4 | 5 | [assembly: Dependency(typeof(ExportFilesToLocation))] 6 | namespace ExportDataToExcel.iOS 7 | { 8 | public class ExportFilesToLocation : IExportFilesToLocation 9 | { 10 | public ExportFilesToLocation() 11 | { 12 | } 13 | 14 | public string GetFolderLocation() 15 | { 16 | string root = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments); 17 | return root + "/"; 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UIDeviceFamily 6 | 7 | 1 8 | 2 9 | 10 | UISupportedInterfaceOrientations 11 | 12 | UIInterfaceOrientationPortrait 13 | UIInterfaceOrientationLandscapeLeft 14 | UIInterfaceOrientationLandscapeRight 15 | 16 | UISupportedInterfaceOrientations~ipad 17 | 18 | UIInterfaceOrientationPortrait 19 | UIInterfaceOrientationPortraitUpsideDown 20 | UIInterfaceOrientationLandscapeLeft 21 | UIInterfaceOrientationLandscapeRight 22 | 23 | MinimumOSVersion 24 | 8.0 25 | CFBundleDisplayName 26 | ExportDataToExcel 27 | CFBundleIdentifier 28 | com.companyname.ExportDataToExcel 29 | CFBundleVersion 30 | 1.0 31 | UILaunchStoryboardName 32 | LaunchScreen 33 | CFBundleName 34 | ExportDataToExcel 35 | XSAppIconAssets 36 | Assets.xcassets/AppIcon.appiconset 37 | NSCalendarsUsageDescription 38 | Needs Calendar Permission 39 | 40 | 41 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Main.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | using Foundation; 6 | using UIKit; 7 | 8 | namespace ExportDataToExcel.iOS 9 | { 10 | public class Application 11 | { 12 | // This is the main entry point of the application. 13 | static void Main(string[] args) 14 | { 15 | // if you want to use a different Application Delegate class from "AppDelegate" 16 | // you can specify it here. 17 | UIApplication.Main(args, null, "AppDelegate"); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("ExportDataToExcel.iOS")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("ExportDataToExcel.iOS")] 13 | [assembly: AssemblyCopyright("Copyright © 2014")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Resources/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Resources/Default-568h@2x.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Resources/Default-Portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Resources/Default-Portrait.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Resources/Default-Portrait@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Resources/Default-Portrait@2x.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Resources/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Resources/Default.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Resources/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Resources/Default@2x.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Resources/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Resources/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Resources/avatar.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Resources/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Resources/right.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Resources/shareexcel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Resources/shareexcel.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel.iOS/Resources/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/ExportDataToExcel.iOS/Resources/user.png -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/App.xaml: -------------------------------------------------------------------------------- 1 |  2 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using ExportDataToExcel.Services.Navigation; 2 | using ExportDataToExcel.ViewModels.Base; 3 | using ExportDataToExcel.Views; 4 | using System; 5 | using System.Threading.Tasks; 6 | using Xamarin.Forms; 7 | using Xamarin.Forms.Xaml; 8 | 9 | [assembly: XamlCompilation(XamlCompilationOptions.Compile)] 10 | namespace ExportDataToExcel 11 | { 12 | public partial class App : Application 13 | { 14 | public App() 15 | { 16 | InitializeComponent(); 17 | 18 | InitApp(); 19 | 20 | if (Device.RuntimePlatform == Device.UWP) 21 | { 22 | InitNavigation(); 23 | } 24 | MainPage = new CustomNavigationView(new MainMenuView()); 25 | } 26 | 27 | private Task InitNavigation() 28 | { 29 | var navigationService = ViewModelLocator.Resolve(); 30 | return navigationService.InitializeAsync(); 31 | } 32 | private void InitApp() 33 | { 34 | ViewModelLocator.RegisterDependencies(false); 35 | } 36 | 37 | protected override void OnStart() 38 | { 39 | // Handle when your app starts 40 | } 41 | 42 | protected override void OnSleep() 43 | { 44 | // Handle when your app sleeps 45 | } 46 | 47 | protected override void OnResume() 48 | { 49 | // Handle when your app resumes 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/ExportDataToExcel.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | pdbonly 9 | true 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | MSBuild:Compile 23 | 24 | 25 | MSBuild:Compile 26 | 27 | 28 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/Helpers/ObservableObject.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Runtime.CompilerServices; 5 | 6 | namespace ExportDataToExcel.Helpers 7 | { 8 | /// 9 | /// Observable object with INotifyPropertyChanged implemented 10 | /// 11 | public class ObservableObject : INotifyPropertyChanged 12 | { 13 | /// 14 | /// Sets the property. 15 | /// 16 | /// true, if property was set, false otherwise. 17 | /// Backing store. 18 | /// Value. 19 | /// Property name. 20 | /// On changed. 21 | /// The 1st type parameter. 22 | protected bool SetProperty(ref T backingStore, T value, 23 | [CallerMemberName]string propertyName = "", 24 | Action onChanged = null) 25 | { 26 | if (EqualityComparer.Default.Equals(backingStore, value)) 27 | return false; 28 | 29 | backingStore = value; 30 | onChanged?.Invoke(); 31 | OnPropertyChanged(propertyName); 32 | return true; 33 | } 34 | 35 | #region INotifyPropertyChanged 36 | public event PropertyChangedEventHandler PropertyChanged; 37 | protected void OnPropertyChanged([CallerMemberName] string propertyName = "") 38 | { 39 | var changed = PropertyChanged; 40 | if (changed == null) 41 | return; 42 | 43 | changed.Invoke(this, new PropertyChangedEventArgs(propertyName)); 44 | } 45 | #endregion 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/Interfaces/IExportFilesToLocation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace ExportDataToExcel.Interfaces 6 | { 7 | public interface IExportFilesToLocation 8 | { 9 | string GetFolderLocation(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/MainPage.xaml: -------------------------------------------------------------------------------- 1 |  2 | 7 | 8 | 9 | 10 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/MainPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using Xamarin.Forms; 7 | 8 | namespace ExportDataToExcel 9 | { 10 | public partial class MainPage : ContentPage 11 | { 12 | public MainPage() 13 | { 14 | InitializeComponent(); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/Models/XFDeveloper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace ExportDataToExcel.Models 6 | { 7 | public class XFDeveloper 8 | { 9 | public int ID { get; set; } 10 | public string FullName { get; set; } 11 | public string Phone { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/Services/Navigation/INavigationService.cs: -------------------------------------------------------------------------------- 1 | using ExportDataToExcel.ViewModels; 2 | using System.Threading.Tasks; 3 | 4 | namespace ExportDataToExcel.Services.Navigation 5 | { 6 | public interface INavigationService 7 | { 8 | BaseViewModel PreviousPageViewModel { get; } 9 | 10 | Task InitializeAsync(); 11 | 12 | Task NavigateToAsync() where TViewModel : BaseViewModel; 13 | 14 | Task NavigateToAsync(object parameter) where TViewModel : BaseViewModel; 15 | 16 | Task RemoveLastFromBackStackAsync(); 17 | 18 | Task RemoveBackStackAsync(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/Services/Navigation/NavigationService.cs: -------------------------------------------------------------------------------- 1 | using ExportDataToExcel.ViewModels; 2 | using ExportDataToExcel.Views; 3 | using System; 4 | using System.Globalization; 5 | using System.Reflection; 6 | using System.Threading.Tasks; 7 | using Xamarin.Forms; 8 | 9 | namespace ExportDataToExcel.Services.Navigation 10 | { 11 | public class NavigationService : INavigationService 12 | { 13 | public BaseViewModel PreviousPageViewModel 14 | { 15 | get 16 | { 17 | var mainPage = Application.Current.MainPage as CustomNavigationView; 18 | var viewModel = mainPage.Navigation.NavigationStack[mainPage.Navigation.NavigationStack.Count - 2].BindingContext; 19 | return viewModel as BaseViewModel; 20 | } 21 | } 22 | 23 | 24 | public Task InitializeAsync() 25 | { 26 | return NavigateToAsync(); 27 | 28 | } 29 | 30 | public Task NavigateToAsync() where TViewModel : BaseViewModel 31 | { 32 | return InternalNavigateToAsync(typeof(TViewModel), null); 33 | } 34 | 35 | public Task NavigateToAsync(object parameter) where TViewModel : BaseViewModel 36 | { 37 | return InternalNavigateToAsync(typeof(TViewModel), parameter); 38 | } 39 | 40 | public Task RemoveLastFromBackStackAsync() 41 | { 42 | var mainPage = Application.Current.MainPage as CustomNavigationView; 43 | 44 | if (mainPage != null) 45 | { 46 | mainPage.Navigation.RemovePage( 47 | mainPage.Navigation.NavigationStack[mainPage.Navigation.NavigationStack.Count - 2]); 48 | } 49 | 50 | return Task.FromResult(true); 51 | } 52 | 53 | public Task RemoveBackStackAsync() 54 | { 55 | var mainPage = Application.Current.MainPage as CustomNavigationView; 56 | 57 | if (mainPage != null) 58 | { 59 | for (int i = 0; i < mainPage.Navigation.NavigationStack.Count - 1; i++) 60 | { 61 | var page = mainPage.Navigation.NavigationStack[i]; 62 | mainPage.Navigation.RemovePage(page); 63 | } 64 | } 65 | 66 | return Task.FromResult(true); 67 | } 68 | 69 | private async Task InternalNavigateToAsync(Type viewModelType, object parameter) 70 | { 71 | Page page = CreatePage(viewModelType, parameter); 72 | 73 | 74 | var navigationPage = Application.Current.MainPage as CustomNavigationView; 75 | if (navigationPage != null) 76 | { 77 | await navigationPage.PushAsync(page); 78 | } 79 | else 80 | { 81 | Application.Current.MainPage = new CustomNavigationView(page); 82 | } 83 | 84 | await (page.BindingContext as BaseViewModel).InitializeAsync(parameter); 85 | } 86 | 87 | private Type GetPageTypeForViewModel(Type viewModelType) 88 | { 89 | var viewName = viewModelType.FullName.Replace("Model", string.Empty); 90 | var viewModelAssemblyName = viewModelType.GetTypeInfo().Assembly.FullName; 91 | var viewAssemblyName = string.Format(CultureInfo.InvariantCulture, "{0}, {1}", viewName, viewModelAssemblyName); 92 | var viewType = Type.GetType(viewAssemblyName); 93 | return viewType; 94 | } 95 | 96 | private Page CreatePage(Type viewModelType, object parameter) 97 | { 98 | Type pageType = GetPageTypeForViewModel(viewModelType); 99 | if (pageType == null) 100 | { 101 | throw new Exception($"Cannot locate page type for {viewModelType}"); 102 | } 103 | 104 | Page page = Activator.CreateInstance(pageType) as Page; 105 | return page; 106 | } 107 | 108 | 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/Services/ServiceXFDeveloper.cs: -------------------------------------------------------------------------------- 1 | using ExportDataToExcel.Models; 2 | using System.Collections.Generic; 3 | 4 | namespace ExportDataToExcel.Services 5 | { 6 | public class XFDeveloperService 7 | { 8 | public static List GetAllXamarinDevelopers() 9 | { 10 | List developpers = new List 11 | { 12 | new XFDeveloper 13 | { 14 | ID = 1, 15 | FullName = "James Montemagno", 16 | Phone = "+00 0000 0001" 17 | }, 18 | new XFDeveloper 19 | { 20 | ID = 2, 21 | FullName = "Leomaris Rayes", 22 | Phone = "+00 0000 0002" 23 | }, 24 | new XFDeveloper 25 | { 26 | ID = 3, 27 | FullName = "K. Laurent Egbakou", 28 | Phone = "+00 0000 0003" 29 | }, 30 | new XFDeveloper 31 | { 32 | ID = 4, 33 | FullName = "Houssem Dellai", 34 | Phone = "+00 0000 0004" 35 | }, 36 | new XFDeveloper 37 | { 38 | ID = 5, 39 | FullName = "Yves Gaston", 40 | Phone = "+00 0000 0005" 41 | }, 42 | new XFDeveloper 43 | { 44 | ID = 6, 45 | FullName = "John Doe", 46 | Phone = "+00 0000 0006" 47 | }, 48 | new XFDeveloper 49 | { 50 | ID = 7, 51 | FullName = "Marcel Adama", 52 | Phone = "+00 0000 0007" 53 | }, 54 | new XFDeveloper 55 | { 56 | ID = 8, 57 | FullName = "Carlos Ognankotan", 58 | Phone = "+00 0000 0008" 59 | } 60 | }; 61 | 62 | return developpers; 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/ViewModels/Base/ViewModelLocator.cs: -------------------------------------------------------------------------------- 1 | using Autofac; 2 | using ExportDataToExcel.Services.Navigation; 3 | using System; 4 | using System.Globalization; 5 | using System.Reflection; 6 | using Xamarin.Forms; 7 | 8 | namespace ExportDataToExcel.ViewModels.Base 9 | { 10 | public static class ViewModelLocator 11 | { 12 | private static IContainer _container; 13 | 14 | public static readonly BindableProperty AutoWireViewModelProperty = 15 | BindableProperty.CreateAttached("AutoWireViewModel", typeof(bool), typeof(ViewModelLocator), default(bool), propertyChanged: OnAutoWireViewModelChanged); 16 | 17 | public static bool GetAutoWireViewModel(BindableObject bindable) 18 | { 19 | return (bool)bindable.GetValue(ViewModelLocator.AutoWireViewModelProperty); 20 | } 21 | 22 | public static void SetAutoWireViewModel(BindableObject bindable, bool value) 23 | { 24 | bindable.SetValue(ViewModelLocator.AutoWireViewModelProperty, value); 25 | } 26 | 27 | public static bool UseMockService { get; set; } 28 | 29 | public static void RegisterDependencies(bool useMockServices) 30 | { 31 | var builder = new ContainerBuilder(); 32 | 33 | 34 | // Services 35 | builder.RegisterType().As().SingleInstance(); 36 | 37 | if (_container != null) 38 | { 39 | _container.Dispose(); 40 | 41 | } 42 | 43 | _container = builder.Build(); 44 | 45 | } 46 | 47 | 48 | public static T Resolve() 49 | { 50 | return _container.Resolve(); 51 | } 52 | 53 | private static void OnAutoWireViewModelChanged(BindableObject bindable, object oldValue, object newValue) 54 | { 55 | var view = bindable as Element; 56 | if (view == null) 57 | { 58 | return; 59 | } 60 | 61 | var viewType = view.GetType(); 62 | var viewName = viewType.FullName.Replace(".Views.", ".ViewModels."); 63 | var viewAssemblyName = viewType.GetTypeInfo().Assembly.FullName; 64 | var viewModelName = string.Format(CultureInfo.InvariantCulture, "{0}Model, {1}", viewName, viewAssemblyName); 65 | 66 | var viewModelType = Type.GetType(viewModelName); 67 | if (viewModelType == null) 68 | { 69 | return; 70 | } 71 | 72 | 73 | var viewModel = _container.Resolve(viewModelType); 74 | view.BindingContext = viewModel; 75 | } 76 | 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/ViewModels/BaseViewModel.cs: -------------------------------------------------------------------------------- 1 | using ExportDataToExcel.Helpers; 2 | using ExportDataToExcel.ViewModels.Base; 3 | using System.Threading.Tasks; 4 | using ExportDataToExcel.Services.Navigation; 5 | 6 | namespace ExportDataToExcel.ViewModels 7 | { 8 | public class BaseViewModel : ObservableObject 9 | { 10 | 11 | protected readonly INavigationService NavigationService; 12 | 13 | public BaseViewModel() 14 | { 15 | 16 | NavigationService = ViewModelLocator.Resolve(); 17 | 18 | } 19 | 20 | bool isBusy = false; 21 | public bool IsBusy 22 | { 23 | get { return isBusy; } 24 | set { SetProperty(ref isBusy, value); } 25 | } 26 | 27 | bool syncInProcess = false; 28 | public bool SyncInProcess 29 | { 30 | get { return syncInProcess; } 31 | set { SetProperty(ref syncInProcess, value); } 32 | } 33 | 34 | 35 | 36 | /// 37 | /// Private backing field to hold the title 38 | /// 39 | string title = string.Empty; 40 | /// 41 | /// Public property to set and get the title of the item 42 | /// 43 | public string Title 44 | { 45 | get { return title; } 46 | set { SetProperty(ref title, value); } 47 | } 48 | 49 | public virtual Task InitializeAsync(object navigationData) 50 | { 51 | return Task.FromResult(false); 52 | } 53 | 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/ViewModels/MainMenuViewModel.cs: -------------------------------------------------------------------------------- 1 | using DocumentFormat.OpenXml; 2 | using DocumentFormat.OpenXml.Packaging; 3 | using DocumentFormat.OpenXml.Spreadsheet; 4 | using ExportDataToExcel.Interfaces; 5 | using ExportDataToExcel.Models; 6 | using ExportDataToExcel.Services; 7 | using Plugin.Permissions; 8 | using Plugin.Permissions.Abstractions; 9 | using System; 10 | using System.Collections.ObjectModel; 11 | using System.Diagnostics; 12 | using System.Linq; 13 | using System.Windows.Input; 14 | using Xamarin.Forms; 15 | using Cell = DocumentFormat.OpenXml.Spreadsheet.Cell; 16 | 17 | namespace ExportDataToExcel.ViewModels 18 | { 19 | public class MainMenuViewModel : BaseViewModel 20 | { 21 | 22 | public MainMenuViewModel() 23 | { 24 | Title = "Xamarin Developers"; 25 | LoadData(); 26 | ExportToExcelCommand = new Command(async () => await ExportDataToExcelAsync()); 27 | } 28 | 29 | /* Get Xamarin developers list from Service*/ 30 | private void LoadData() 31 | { 32 | Developers = new ObservableCollection(XFDeveloperService.GetAllXamarinDevelopers()); 33 | } 34 | 35 | 36 | /* Export the list to excel file at the location provide by DependencyService */ 37 | public async System.Threading.Tasks.Task ExportDataToExcelAsync() 38 | { 39 | // Granted storage permission 40 | var storageStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage); 41 | 42 | if (storageStatus != PermissionStatus.Granted) 43 | { 44 | var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Storage }); 45 | storageStatus = results[Permission.Storage]; 46 | } 47 | 48 | if (Developers.Count() > 0) 49 | { 50 | try 51 | { 52 | string date = DateTime.Now.ToShortDateString(); 53 | date = date.Replace("/", "_"); 54 | 55 | var path = DependencyService.Get().GetFolderLocation() + "XFDevelopers" + date + ".xlsx"; 56 | FilePath = path; 57 | using (SpreadsheetDocument document = SpreadsheetDocument.Create(path, SpreadsheetDocumentType.Workbook)) 58 | { 59 | WorkbookPart workbookPart = document.AddWorkbookPart(); 60 | workbookPart.Workbook = new Workbook(); 61 | 62 | WorksheetPart worksheetPart = workbookPart.AddNewPart(); 63 | worksheetPart.Worksheet = new Worksheet(); 64 | 65 | Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets()); 66 | Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Xamarin Forms developers list" }; 67 | sheets.Append(sheet); 68 | 69 | workbookPart.Workbook.Save(); 70 | 71 | SheetData sheetData = worksheetPart.Worksheet.AppendChild(new SheetData()); 72 | 73 | // Constructing header 74 | Row row = new Row(); 75 | 76 | row.Append( 77 | ConstructCell("No", CellValues.String), 78 | ConstructCell("FullName", CellValues.String), 79 | ConstructCell("Phone", CellValues.String) 80 | ); 81 | 82 | // Insert the header row to the Sheet Data 83 | sheetData.AppendChild(row); 84 | 85 | // Add each product 86 | foreach (var d in Developers) 87 | { 88 | row = new Row(); 89 | row.Append( 90 | ConstructCell(d.ID.ToString(), CellValues.String), 91 | ConstructCell(d.FullName, CellValues.String), 92 | ConstructCell(d.Phone, CellValues.String)); 93 | sheetData.AppendChild(row); 94 | } 95 | 96 | worksheetPart.Worksheet.Save(); 97 | MessagingCenter.Send(this, "DataExportedSuccessfully"); 98 | } 99 | 100 | } 101 | catch (Exception e) 102 | { 103 | Debug.WriteLine("ERROR: "+ e.Message); 104 | } 105 | } 106 | else 107 | { 108 | MessagingCenter.Send(this, "NoDataToExport"); 109 | } 110 | } 111 | 112 | 113 | /* To create cell in Excel */ 114 | private Cell ConstructCell(string value, CellValues dataType) 115 | { 116 | return new Cell() 117 | { 118 | CellValue = new CellValue(value), 119 | DataType = new EnumValue(dataType) 120 | }; 121 | } 122 | 123 | 124 | public ICommand ExportToExcelCommand { get; set; } 125 | 126 | private ObservableCollection _developers; 127 | public ObservableCollection Developers 128 | { 129 | get { return _developers; } 130 | set { SetProperty(ref _developers, value); } 131 | } 132 | 133 | private string _filePath; 134 | public string FilePath 135 | { 136 | get { return _filePath; } 137 | set { SetProperty(ref _filePath, value); } 138 | } 139 | 140 | } 141 | } 142 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/Views/CustomNavigationView.xaml: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/Views/CustomNavigationView.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace ExportDataToExcel.Views 5 | { 6 | [XamlCompilation(XamlCompilationOptions.Compile)] 7 | public partial class CustomNavigationView : NavigationPage 8 | { 9 | public CustomNavigationView() : base() 10 | { 11 | InitializeComponent(); 12 | } 13 | 14 | public CustomNavigationView(Page root) : base(root) 15 | { 16 | InitializeComponent(); 17 | } 18 | 19 | 20 | } 21 | } -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/Views/MainMenuView.xaml: -------------------------------------------------------------------------------- 1 |  2 | 7 | 8 | 9 | 10 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 26 | 27 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 54 | 55 | 56 | 62 | 63 | 64 | 70 | 71 | 83 | 84 | 85 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /ExportDataToExcel/ExportDataToExcel/Views/MainMenuView.xaml.cs: -------------------------------------------------------------------------------- 1 | using ExportDataToExcel.ViewModels; 2 | 3 | using Xamarin.Forms; 4 | using Xamarin.Forms.Xaml; 5 | 6 | namespace ExportDataToExcel.Views 7 | { 8 | [XamlCompilation(XamlCompilationOptions.Compile)] 9 | public partial class MainMenuView : ContentPage 10 | { 11 | private MainMenuViewModel viewModel; 12 | public MainMenuView() 13 | { 14 | InitializeComponent(); 15 | BindingContext = viewModel = new MainMenuViewModel(); 16 | RegisterMesssages(); 17 | } 18 | 19 | 20 | private void RegisterMesssages() 21 | { 22 | MessagingCenter.Subscribe(this, "DataExportedSuccessfully", (m) => 23 | { 24 | if (m != null) 25 | { 26 | DisplayAlert("Info", "Data exported Successfully. The location is :"+m.FilePath, "OK"); 27 | } 28 | }); 29 | 30 | MessagingCenter.Subscribe(this, "NoDataToExport", (m) => 31 | { 32 | if (m != null) 33 | { 34 | DisplayAlert("Warning !", "No data to export.", "OK"); 35 | } 36 | }); 37 | } 38 | 39 | } 40 | } -------------------------------------------------------------------------------- /ExportDataToExcel/screenshots/Export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/screenshots/Export.png -------------------------------------------------------------------------------- /ExportDataToExcel/screenshots/Interface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/screenshots/Interface.png -------------------------------------------------------------------------------- /ExportDataToExcel/screenshots/Location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/screenshots/Location.png -------------------------------------------------------------------------------- /ExportDataToExcel/screenshots/create_project.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/screenshots/create_project.PNG -------------------------------------------------------------------------------- /ExportDataToExcel/screenshots/nuget_packages.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/screenshots/nuget_packages.PNG -------------------------------------------------------------------------------- /ExportDataToExcel/screenshots/openexcel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/screenshots/openexcel.png -------------------------------------------------------------------------------- /ExportDataToExcel/screenshots/post_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/egbakou/ExportDataToExcel/82a2fe6450432d6d21fff599aed6ecf94282f40b/ExportDataToExcel/screenshots/post_img.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Export ListView Items to Excel File in Xamarin.Forms 2 | 3 | 4 | 5 | ### Lioncoding article Link 6 | 7 | [Data Export in Xamarin.Forms](https://lioncoding.com/2019/03/07/2019-03-07-export-de-donnees-sous-format-excel-dans-xamarin-forms/) 8 | 9 | ### Nuget packages used 10 | 11 | | Packages | Version | Use for | 12 | | :----------------------------------------------------------: | :------: | :-------------------------: | 13 | | [Autofac](https://www.nuget.org/packages/Autofac/) | 4.9.1 | Inversion of control | 14 | | [DocumentFormat.OpenXml](https://www.nuget.org/packages/DocumentFormat.OpenXml/) | 2.9.0 | Data export to Excel format | 15 | | [Plugin.Permissions](https://www.nuget.org/packages/Plugin.Permissions/3.0.0.12) | 3.0.0.12 | Adding storage permission | 16 | 17 | ### Initializations and Configurations 18 | 19 | ##### Android project 20 | 21 | - MainActivity.cs 22 | 23 | ```c# 24 | protected override void OnCreate(Bundle bundle) 25 | { 26 | // ... 27 | Plugin.CurrentActivity.CrossCurrentActivity.Current.Init(this, bundle); 28 | // ... 29 | } 30 | 31 | public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults) 32 | { 33 | PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults); 34 | base.OnRequestPermissionsResult(requestCode, permissions, grantResults); 35 | } 36 | ``` 37 | 38 | - AssemblyInfo.cs (Add storage permission) 39 | 40 | ```c# 41 | [assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] 42 | ``` 43 | 44 | 45 | 46 | ### Model source code 47 | 48 | ```c# 49 | using System; 50 | using System.Collections.Generic; 51 | using System.Text; 52 | 53 | namespace ExportDataToExcel.Models 54 | { 55 | public class XFDeveloper 56 | { 57 | public int ID { get; set; } 58 | public string FullName { get; set; } 59 | public string Phone { get; set; } 60 | } 61 | } 62 | 63 | ``` 64 | 65 | ### Service which provide List items 66 | 67 | ```c# 68 | using ExportDataToExcel.Models; 69 | using System.Collections.Generic; 70 | 71 | namespace ExportDataToExcel.Services 72 | { 73 | public class XFDeveloperService 74 | { 75 | public static List GetAllXamarinDevelopers() 76 | { 77 | List developers = new List 78 | { 79 | new XFDeveloper 80 | { 81 | ID = 1, 82 | FullName = "James Montemagno", 83 | Phone = "+00 0000 0001" 84 | }, 85 | new XFDeveloper 86 | { 87 | ID = 2, 88 | FullName = "Leomaris Rayes", 89 | Phone = "+00 0000 0002" 90 | }, 91 | new XFDeveloper 92 | { 93 | ID = 3, 94 | FullName = "K. Laurent egbakou", 95 | Phone = "+00 0000 0003" 96 | }, 97 | new XFDeveloper 98 | { 99 | ID = 4, 100 | FullName = "Houssem Dellai", 101 | Phone = "+00 0000 0004" 102 | }, 103 | new XFDeveloper 104 | { 105 | ID = 5, 106 | FullName = "Yves Gaston", 107 | Phone = "+00 0000 0005" 108 | }, 109 | new XFDeveloper 110 | { 111 | ID = 6, 112 | FullName = "John Doe", 113 | Phone = "+00 0000 0006" 114 | }, 115 | new XFDeveloper 116 | { 117 | ID = 7, 118 | FullName = "Marcel Adama", 119 | Phone = "+00 0000 0007" 120 | }, 121 | new XFDeveloper 122 | { 123 | ID = 8, 124 | FullName = "Carlos Ognankotan", 125 | Phone = "+00 0000 0008" 126 | } 127 | }; 128 | 129 | return developers; 130 | } 131 | } 132 | } 133 | 134 | ``` 135 | 136 | 137 | 138 | ### View source code(We want to export ListView items to Excel file) 139 | 140 | ```xml 141 | 142 | 147 | 148 | 149 | 150 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 166 | 167 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 194 | 195 | 196 | 202 | 203 | 204 | 210 | 211 | 223 | 224 | 225 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | ``` 243 | 244 | ### Code behind 245 | 246 | ```c# 247 | using ExportDataToExcel.ViewModels; 248 | 249 | using Xamarin.Forms; 250 | using Xamarin.Forms.Xaml; 251 | 252 | namespace ExportDataToExcel.Views 253 | { 254 | [XamlCompilation(XamlCompilationOptions.Compile)] 255 | public partial class MainMenuView : ContentPage 256 | { 257 | private MainMenuViewModel viewModel; 258 | public MainMenuView() 259 | { 260 | InitializeComponent(); 261 | BindingContext = viewModel = new MainMenuViewModel(); 262 | RegisterMesssages(); 263 | } 264 | 265 | 266 | private void RegisterMesssages() 267 | { 268 | MessagingCenter.Subscribe(this, "DataExportedSuccessfully", (m) => 269 | { 270 | if (m != null) 271 | { 272 | DisplayAlert("Info", "Data exported Successfully. The location is :"+m.FilePath, "OK"); 273 | } 274 | }); 275 | 276 | MessagingCenter.Subscribe(this, "NoDataToExport", (m) => 277 | { 278 | if (m != null) 279 | { 280 | DisplayAlert("Warning !", "No data to export.", "OK"); 281 | } 282 | }); 283 | } 284 | 285 | } 286 | } 287 | ``` 288 | 289 | ### View Model code 290 | 291 | ```c# 292 | using DocumentFormat.OpenXml; 293 | using DocumentFormat.OpenXml.Packaging; 294 | using DocumentFormat.OpenXml.Spreadsheet; 295 | using ExportDataToExcel.Interfaces; 296 | using ExportDataToExcel.Models; 297 | using ExportDataToExcel.Services; 298 | using Plugin.Permissions; 299 | using Plugin.Permissions.Abstractions; 300 | using System; 301 | using System.Collections.ObjectModel; 302 | using System.Diagnostics; 303 | using System.Linq; 304 | using System.Windows.Input; 305 | using Xamarin.Forms; 306 | using Cell = DocumentFormat.OpenXml.Spreadsheet.Cell; 307 | 308 | namespace ExportDataToExcel.ViewModels 309 | { 310 | public class MainMenuViewModel : BaseViewModel 311 | { 312 | 313 | public MainMenuViewModel() 314 | { 315 | Title = "Xamarin Developers"; 316 | LoadData(); 317 | ExportToExcelCommand = new Command(async () => await ExportDataToExcelAsync()); 318 | } 319 | 320 | /* Get Xamarin developers list from Service*/ 321 | private void LoadData() 322 | { 323 | Developers = new ObservableCollection(XFDeveloperService.GetAllXamarinDevelopers()); 324 | } 325 | 326 | 327 | /* Export the list to excel file at the location provide by DependencyService */ 328 | public async System.Threading.Tasks.Task ExportDataToExcelAsync() 329 | { 330 | // Granted storage permission 331 | var storageStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage); 332 | 333 | if (storageStatus != PermissionStatus.Granted) 334 | { 335 | var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Storage }); 336 | storageStatus = results[Permission.Storage]; 337 | } 338 | 339 | if (Developers.Count() > 0) 340 | { 341 | try 342 | { 343 | string date = DateTime.Now.ToShortDateString(); 344 | date = date.Replace("/", "_"); 345 | 346 | var path = DependencyService.Get().GetFolderLocation() + "xfdevelopers" + date + ".xlsx"; 347 | FilePath = path; 348 | using (SpreadsheetDocument document = SpreadsheetDocument.Create(path, SpreadsheetDocumentType.Workbook)) 349 | { 350 | WorkbookPart workbookPart = document.AddWorkbookPart(); 351 | workbookPart.Workbook = new Workbook(); 352 | 353 | WorksheetPart worksheetPart = workbookPart.AddNewPart(); 354 | worksheetPart.Worksheet = new Worksheet(); 355 | 356 | Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets()); 357 | Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Xamarin Forms developers list" }; 358 | sheets.Append(sheet); 359 | 360 | workbookPart.Workbook.Save(); 361 | 362 | SheetData sheetData = worksheetPart.Worksheet.AppendChild(new SheetData()); 363 | 364 | // Constructing header 365 | Row row = new Row(); 366 | 367 | row.Append( 368 | ConstructCell("No", CellValues.String), 369 | ConstructCell("FullName", CellValues.String), 370 | ConstructCell("Phone", CellValues.String) 371 | ); 372 | 373 | // Insert the header row to the Sheet Data 374 | sheetData.AppendChild(row); 375 | 376 | // Add each product 377 | foreach (var d in Developers) 378 | { 379 | row = new Row(); 380 | row.Append( 381 | ConstructCell(d.ID.ToString(), CellValues.String), 382 | ConstructCell(d.FullName, CellValues.String), 383 | ConstructCell(d.Phone, CellValues.String)); 384 | sheetData.AppendChild(row); 385 | } 386 | 387 | worksheetPart.Worksheet.Save(); 388 | MessagingCenter.Send(this, "DataExportedSuccessfully"); 389 | } 390 | 391 | } 392 | catch (Exception e) 393 | { 394 | Debug.WriteLine("ERROR: "+ e.Message); 395 | } 396 | } 397 | else 398 | { 399 | MessagingCenter.Send(this, "NoDataToExport"); 400 | } 401 | } 402 | 403 | 404 | /* To create cell in Excel */ 405 | private Cell ConstructCell(string value, CellValues dataType) 406 | { 407 | return new Cell() 408 | { 409 | CellValue = new CellValue(value), 410 | DataType = new EnumValue(dataType) 411 | }; 412 | } 413 | 414 | 415 | public ICommand ExportToExcelCommand { get; set; } 416 | 417 | private ObservableCollection _developers; 418 | public ObservableCollection Developers 419 | { 420 | get { return _developers; } 421 | set { SetProperty(ref _developers, value); } 422 | } 423 | 424 | private string _filePath; 425 | public string FilePath 426 | { 427 | get { return _filePath; } 428 | set { SetProperty(ref _filePath, value); } 429 | } 430 | 431 | } 432 | } 433 | 434 | ``` 435 | 436 | ### Screenshots 437 | 438 | --------------------------------------------------------------------------------