{"id":16416341,"url":"https://github.com/igapyon/nyancel-uwp","last_synced_at":"2026-01-16T00:57:02.426Z","repository":{"id":245636630,"uuid":"818318489","full_name":"igapyon/NyanCEL-UWP","owner":"igapyon","description":"NyanCEL-UWP is a server tool that enables SQL queries on the contents of Excel workbooks (.xlsx).","archived":false,"fork":false,"pushed_at":"2024-06-23T01:51:33.000Z","size":59,"stargazers_count":0,"open_issues_count":12,"forks_count":0,"subscribers_count":1,"default_branch":"devel","last_synced_at":"2025-02-08T12:09:56.086Z","etag":null,"topics":["excel","json","rest","sql","sqlite","uwp","xlsx"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/igapyon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-21T15:21:00.000Z","updated_at":"2024-06-23T03:22:04.000Z","dependencies_parsed_at":"2024-06-23T05:23:28.695Z","dependency_job_id":null,"html_url":"https://github.com/igapyon/NyanCEL-UWP","commit_stats":null,"previous_names":["igapyon/nyancel-uwp"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igapyon%2FNyanCEL-UWP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igapyon%2FNyanCEL-UWP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igapyon%2FNyanCEL-UWP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igapyon%2FNyanCEL-UWP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/igapyon","download_url":"https://codeload.github.com/igapyon/NyanCEL-UWP/tar.gz/refs/heads/devel","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246895465,"owners_count":20851277,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["excel","json","rest","sql","sqlite","uwp","xlsx"],"created_at":"2024-10-11T07:09:01.421Z","updated_at":"2026-01-16T00:57:02.419Z","avatar_url":"https://github.com/igapyon.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NyanCEL-UWP\n\nNyanCEL-UWP is a server tool that enables SQL queries on the contents of Excel workbooks (.xlsx).\n\n- NyanCEL-UWP is implemented in UWP and C#.\n- By providing an Excel workbook (.xlsx), it allows you to query each sheet as a table using SQL.\n- Executes SQL queries and retrieves results via a REST interface.\n- It is released under the MIT license.\n- NyanCEL-UWP is part of the NyanCEL project.\n\n## Relationship with the NyanQL Project\n\n- NyanCEL is a friend project of the NyanQL project.\n- It is an independent project inspired by the NyanQL project.\n- NyanCEL respects and honors the NyanQL project.\n- It is implemented in UWP and C# and is planned to be distributed through the Microsoft Store.\n\n## Workflow\n\n1. Provide an Excel workbook (.xlsx) file:\n   - Use sheet names as table names.\n   - Use the values of the first row as column names.\n   - Derive column data types from the format of the second row.\n2. Load the content of the specified Excel workbook into an SQLite database:\n   - Read data from the second row onwards.\n   - Load the read data into an in-memory SQLite.\n3. Execute SELECT statements from the REST interface:\n   - Search the database with the provided SELECT statement.\n   - Use SQLite SQL syntax.\n   - GET and POST methods are available (currently only GET is supported).\n   - The default port number is 28096.\n4. Return the search results of the SELECT statement:\n   - Return search results as row data.\n   - Support for json, xml, xlsx formats as return results.\n   - By default, return search results as json data.\n   - Add the parameter fmt=xml to change the return format to XML.\n   - Add the parameter fmt=xlsx to change the return format to xlsx.\n   - Specify the parameter fmt=json\u0026target=data.1 to filter and specify return data.\n   - Apply jsonpath to the search results with fmt=json\u0026jsonpath=.\n   - Apply xpath to the search results with fmt=xml\u0026xpath=.\n\nAs a feature of UWP, only access to the desktop and removable disks is set.\n\n## Internally Used OSS\n\nNyanCEL-UWP uses the following OSS internally. We appreciate the providers of each OSS.\n\n- ClosedXML\n  - MIT\n  - 0.102.2\n- EmbedIO\n  - MIT\n  - 3.5.2\n- Microsoft.Data.Sqlite\n  - MIT\n  - 8.0.6\n- Microsoft.UI.Xaml\n  - 2.8.6\n- Newtonsoft.Json\n  - MIT\n  - 13.0.3\n- Serilog\n  - MIT\n  - 4.0.0\n- Serilog.Sinks.File\n  - MIT\n  - 5.0.0\n- Igapyon.NyanCEL\n  - MIT\n  - 0.5.0\n\n## Path of Operation Logs\n\nOperation logs of NyanCEL are stored in the following folder hierarchy:\n\n```sh\nUSERROOTPATH\\AppData\\Local\\Packages\\NyanCEL-XXXXXXXXXXXXX\\LocalState\n```\n\n- Log files related to operation and executed SQL log files are created.\n\n## SQL Useful for Operation Confirmation\n\n```sh\nhttp://IPADDRESS:28096/api?sql=SELECT%20*%20FROM%20sqlite_master\n```\n\n# Limitations\n\n- Since it operates on an in-memory RDBMS, it may not work with large amounts of data.\n- Only supports .xlsx files.\n- Cannot connect via HTTP loopback. Please access from another machine.\n- The app is basically intended to operate in the foreground.\n- Double quotes cannot be included in the Excel sheet names or column names of the title row.\n\n# Install\n\n- Prepare NyanCEL_1.0.1.0_x86_x64_arm_arm64.cer.\n- Use certlm.msc to open \"Trusted Root Certification Authorities \u003e Certificates\".\n- Right-click \u003e All Tasks \u003e Import. Install the certificate (NyanCEL_1.0.1.0_x86_x64_arm_arm64.cer).\n- Double-click NyanCEL_1.0.1.0_x86_x64_arm_arm64.msixbundle to install.\n\n# TODO\n\n- (ASAP) Enable specifying BASIC authentication username and password at startup.\n- (ASAP) Function to operate with https using user-specified certificates.\n- Operation boundaries:\n  - Error handling. Handle failures in loading Excel workbooks (inputting non-Excel data). Verify errors for file loading from locations other than documents or removable disks.\n- Appearance:\n  - Update the app store images appropriately.\n  - Properly document the README.md.\n- Testing:\n  - Create test cases.\n  - Obtain an official code signing key.\n  - Verify operation in KIOSK mode.\n  - Publish a beta version on the store.\n  - Handle .xlsx files with columns of the same name.\n  - Handle .xlsx files containing NyanRowId.\n  - Handle .xlsx files with a null first row.\n- Future version features:\n  - Ensure some compatibility with NyanQL configuration files.\n  - Add an API (/dml) for injecting DML.\n  - Add an API (/exp) for exporting in-memory data.\n  - Port number change feature.\n  - URI scheme launch: Specify Excel workbook, port number, etc. as arguments.\n  - Enable or disable SQL log output.\n  - Support for CSV.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figapyon%2Fnyancel-uwp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figapyon%2Fnyancel-uwp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figapyon%2Fnyancel-uwp/lists"}