{"id":30739973,"url":"https://github.com/yuseok-kim-edushare/powerbuilder-dw2document","last_synced_at":"2025-09-03T23:45:22.630Z","repository":{"id":288547681,"uuid":"968460674","full_name":"yuseok-kim-edushare/PowerBuilder-Dw2document","owner":"yuseok-kim-edushare","description":"This Project implement idea of Appeon's PowerBuilder-Dw2Doc-Example's, with grounded up rewriting for production using","archived":false,"fork":false,"pushed_at":"2025-08-28T05:42:06.000Z","size":245,"stargazers_count":0,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-28T12:03:16.290Z","etag":null,"topics":["datawindow","export-to-excel","export-to-word","powerbuilder"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yuseok-kim-edushare.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,"zenodo":null}},"created_at":"2025-04-18T05:55:19.000Z","updated_at":"2025-08-18T04:42:01.000Z","dependencies_parsed_at":"2025-08-18T04:12:31.848Z","dependency_job_id":"b9714749-dc8e-4b12-ad76-52b4ab996478","html_url":"https://github.com/yuseok-kim-edushare/PowerBuilder-Dw2document","commit_stats":null,"previous_names":["yuseok-kim-edushare/powerbuilder-dw2document"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yuseok-kim-edushare/PowerBuilder-Dw2document","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuseok-kim-edushare%2FPowerBuilder-Dw2document","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuseok-kim-edushare%2FPowerBuilder-Dw2document/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuseok-kim-edushare%2FPowerBuilder-Dw2document/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuseok-kim-edushare%2FPowerBuilder-Dw2document/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yuseok-kim-edushare","download_url":"https://codeload.github.com/yuseok-kim-edushare/PowerBuilder-Dw2document/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuseok-kim-edushare%2FPowerBuilder-Dw2document/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273529532,"owners_count":25121826,"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","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["datawindow","export-to-excel","export-to-word","powerbuilder"],"created_at":"2025-09-03T23:45:21.638Z","updated_at":"2025-09-03T23:45:22.621Z","avatar_url":"https://github.com/yuseok-kim-edushare.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Powerbuilder Datawindow to Document(Xlsx, Docx, ...?)\nThis Project is .NET project that implement **Converter Powerbuilder Datawindow to MS-Office document and so on**\nThis project inspired from Appeon's [Dw2Doc example Project](https://github.com/Appeon/PowerBuilder-Dw2Doc-Example)\n\n## Why Re-construct Architecture?\n\n- We want use in production environment\n- but appeon's original repository has multiple csproj and complex user-object structure\n- SO, to simplifying distribution and manaing and avoiding dll collision from other modules, Single Integrated DLL is better choice\n\n## Introduce\n- We use Virtual Grid Idea to convert datawindow to other format, this is appeon's idea\n- this project target .net8 and .net6 and .net481 for compatability among powerbuilder versions\n- We use Polysharp to comaptability among dotnet versions\n- We use NPOI to handle Office Open XML\n- We use ILRepack to bundling dll\n\n## Acknowledgements\n1. **Appeon's primary idea [repository](https://github.com/Appeon/PowerBuilder-Dw2Doc-Example) encourage our challenge**\n2. **[NPOI](https://github.com/nissl-lab/npoi)**\n3. **[ILRepack](https://github.com/gluck/il-repack)**\n4. **Dotnet Foundation and Microsoft**\n5. **[PolySharp](https://github.com/Sergio0694/PolySharp)**\n\n## NOTICE\n\nThis project is a substantial refactoring and extension of Appeon's Dw2Doc example project ([MIT License](https://github.com/Appeon/PowerBuilder-Dw2Doc-Example)).\n\nMajor changes include:\n- Migration from .NET 6 to .NET 8\n- Merging multiple projects into a single DLL\n- Upgrading NPOI and adding PolySharp for compatibility with .NET 481\n- Architectural and codebase restructuring for production use\n\nOriginal project: https://github.com/Appeon/PowerBuilder-Dw2Doc-Example\n\n## Setup Instructions\n\n### Building the .NET Library\n\n1. Build the yuseok.kim.dw2docs project with dotnet publish:\n   ```\n   dotnet publish PowerBuilder-Dw2document.slnx -r windows -f \u003cyour target\u003e\n   ```\n   (Possible target : net481, net6.0-windows, net8.0-windows)\n\n\n### PowerBuilder Setup\n\n1. Import the PowerBuilder object (dw_exporter.sru) into your PowerBuilder application:\n   - Open your PowerBuilder application\n   - Right-click on your target library in the System Tree\n   - Select \"Import\"\n   - Navigate to the location of dw_exporter.sru\n   - Click Open\n\n2. Add the .NET assembly reference to your PowerBuilder project:\n   - Open your PowerBuilder project\n   - Select Project → Project Properties\n   - Go to \".NET Assemblies\" tab\n   - Click \"Add\"\n   - Browse to the location of yuseok.kim.dw2docs.dll\n      - dll will be located on\n      {repository_root}\\bin\\{target_framewokrs}\n      - example\n          - C:\\Source\\PowerBuilder-Dw2document\\bin\\net481\\yuseok.kim.dw2docs.dll\n   - Select the assembly and click \"Open\"\n   - Click \"OK\" to save the project properties\n\n3. Make sure the .NET assembly is accessible:\n   - The yuseok.kim.dw2docs.dll file should be in your application's path\n   - Either place it in a known system location or in your application's directory\n\n## Usage\n\n```PowerBuilder\n// Create and initialize the exporter\ndw_exporter lnv_exporter\nlnv_exporter = CREATE dw_exporter\nif not lnv_exporter.of_initialize() then\n    MessageBox(\"Error\", \"Failed to initialize DataWindow exporter\")\n    return\nend if\n\n// Export a DataWindow to Excel\nstring ls_xlsx_path = \"C:\\Reports\\MyReport.xlsx\"\nstring ls_result\nls_result = lnv_exporter.of_export_to_excel(dw_1, ls_xlsx_path, \"MySheet\")\n\n// Export a DataWindow to Word\nstring ls_docx_path = \"C:\\Reports\\MyReport.docx\"\nls_result = lnv_exporter.of_export_to_word(dw_1, ls_docx_path)\n\n// Don't forget to destroy the object when done\nDESTROY lnv_exporter\n```\n\n## Troubleshooting\n\nIf you encounter issues with the PowerBuilder/.NET integration:\n\n**our dll's defalut setting is create log file into C:\\temp** \u003c/br\u003e\nif you encounter issue, you can check **C:\\temp\\Dw2Doc_ExcelError.log**\n\n1. Verify the .NET assembly is properly built and accessible\n2. Check that the assembly is added to your PowerBuilder project\n3. Make sure the class name in of_initialize() matches exactly the one in the .NET code\n4. Check PowerBuilder's System Error log for .NET-related errors\n5. Try using the PowerBuilder .NET Assembly Browser to verify the assembly is loaded correctly\n6. If you get \"Class not found\" errors, make sure the namespace and class name match exactly\n7. For \"Method not found\" errors, check parameter types and counts in both PowerBuilder and .NET \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuseok-kim-edushare%2Fpowerbuilder-dw2document","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyuseok-kim-edushare%2Fpowerbuilder-dw2document","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuseok-kim-edushare%2Fpowerbuilder-dw2document/lists"}