xlsxrb 0.1.12 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +59 -42
  3. data/README.md +26 -22
  4. data/lib/xlsxrb/dsl_helpers.rb +59 -0
  5. data/lib/xlsxrb/elements/workbook.rb +11 -0
  6. data/lib/xlsxrb/ooxml/shared_strings_parser.rb +3 -5
  7. data/lib/xlsxrb/ooxml/workbook_writer.rb +5 -7
  8. data/lib/xlsxrb/ooxml/worksheet_parser.rb +172 -9
  9. data/lib/xlsxrb/ooxml/writer.rb +2 -1
  10. data/lib/xlsxrb/ooxml/xml_builder.rb +20 -0
  11. data/lib/xlsxrb/ooxml/zip_reader.rb +364 -78
  12. data/lib/xlsxrb/ooxml/zip_writer.rb +32 -5
  13. data/lib/xlsxrb/stream_sheet.rb +94 -6
  14. data/lib/xlsxrb/stream_writer.rb +33 -66
  15. data/lib/xlsxrb/version.rb +1 -1
  16. data/lib/xlsxrb/workbook_builder.rb +1 -1
  17. data/lib/xlsxrb/worksheet_builder.rb +3 -31
  18. data/lib/xlsxrb.rb +448 -171
  19. data/sig/generated/xlsxrb/dsl_helpers.rbs +32 -0
  20. data/sig/generated/xlsxrb/elements/workbook.rbs +7 -0
  21. data/sig/generated/xlsxrb/ooxml/shared_strings_parser.rbs +0 -2
  22. data/sig/generated/xlsxrb/ooxml/worksheet_parser.rbs +5 -4
  23. data/sig/generated/xlsxrb/ooxml/xml_builder.rbs +11 -0
  24. data/sig/generated/xlsxrb/ooxml/zip_reader.rbs +96 -8
  25. data/sig/generated/xlsxrb/ooxml/zip_writer.rbs +5 -1
  26. data/sig/generated/xlsxrb/stream_sheet.rbs +43 -3
  27. data/sig/generated/xlsxrb.rbs +18 -11
  28. metadata +6 -146
  29. data/.devcontainer/Dockerfile +0 -65
  30. data/.devcontainer/devcontainer.json +0 -17
  31. data/.gem_rbs_collection/ast/2.4/.rbs_meta.yaml +0 -9
  32. data/.gem_rbs_collection/ast/2.4/ast.rbs +0 -73
  33. data/.gem_rbs_collection/concurrent-ruby/1.1/.rbs_meta.yaml +0 -9
  34. data/.gem_rbs_collection/concurrent-ruby/1.1/array.rbs +0 -4
  35. data/.gem_rbs_collection/concurrent-ruby/1.1/atomic_reference.rbs +0 -16
  36. data/.gem_rbs_collection/concurrent-ruby/1.1/executor.rbs +0 -96
  37. data/.gem_rbs_collection/concurrent-ruby/1.1/hash.rbs +0 -4
  38. data/.gem_rbs_collection/concurrent-ruby/1.1/map.rbs +0 -68
  39. data/.gem_rbs_collection/concurrent-ruby/1.1/promises.rbs +0 -249
  40. data/.gem_rbs_collection/concurrent-ruby/1.1/set.rbs +0 -4
  41. data/.gem_rbs_collection/concurrent-ruby/1.1/timer_task.rbs +0 -47
  42. data/.gem_rbs_collection/concurrent-ruby/1.1/utility/processor_counter.rbs +0 -5
  43. data/.gem_rbs_collection/csv/3.3/.rbs_meta.yaml +0 -9
  44. data/.gem_rbs_collection/csv/3.3/csv.rbs +0 -3871
  45. data/.gem_rbs_collection/csv/3.3/manifest.yaml +0 -3
  46. data/.gem_rbs_collection/lint_roller/1.1/.rbs_meta.yaml +0 -9
  47. data/.gem_rbs_collection/lint_roller/1.1/lint_roller.rbs +0 -48
  48. data/.gem_rbs_collection/listen/3.9/.rbs_meta.yaml +0 -9
  49. data/.gem_rbs_collection/listen/3.9/listen.rbs +0 -25
  50. data/.gem_rbs_collection/listen/3.9/listener.rbs +0 -24
  51. data/.gem_rbs_collection/logger/1.7/.rbs_meta.yaml +0 -9
  52. data/.gem_rbs_collection/logger/1.7/formatter.rbs +0 -45
  53. data/.gem_rbs_collection/logger/1.7/log_device.rbs +0 -100
  54. data/.gem_rbs_collection/logger/1.7/logger.rbs +0 -796
  55. data/.gem_rbs_collection/logger/1.7/manifest.yaml +0 -2
  56. data/.gem_rbs_collection/logger/1.7/period.rbs +0 -17
  57. data/.gem_rbs_collection/logger/1.7/severity.rbs +0 -34
  58. data/.gem_rbs_collection/nokogiri/1.11/.rbs_meta.yaml +0 -9
  59. data/.gem_rbs_collection/nokogiri/1.11/nokogiri.rbs +0 -2332
  60. data/.gem_rbs_collection/nokogiri/1.11/patch.rbs +0 -4
  61. data/.gem_rbs_collection/parallel/1.20/.rbs_meta.yaml +0 -9
  62. data/.gem_rbs_collection/parallel/1.20/parallel.rbs +0 -86
  63. data/.gem_rbs_collection/parser/3.2/.rbs_meta.yaml +0 -9
  64. data/.gem_rbs_collection/parser/3.2/manifest.yaml +0 -7
  65. data/.gem_rbs_collection/parser/3.2/parser.rbs +0 -194
  66. data/.gem_rbs_collection/parser/3.2/polyfill.rbs +0 -4
  67. data/.gem_rbs_collection/rainbow/3.0/.rbs_meta.yaml +0 -9
  68. data/.gem_rbs_collection/rainbow/3.0/global.rbs +0 -7
  69. data/.gem_rbs_collection/rainbow/3.0/presenter.rbs +0 -209
  70. data/.gem_rbs_collection/rainbow/3.0/rainbow.rbs +0 -5
  71. data/.gem_rbs_collection/rake/13.0/.rbs_meta.yaml +0 -9
  72. data/.gem_rbs_collection/rake/13.0/manifest.yaml +0 -2
  73. data/.gem_rbs_collection/rake/13.0/rake.rbs +0 -39
  74. data/.gem_rbs_collection/regexp_parser/2.8/.rbs_meta.yaml +0 -9
  75. data/.gem_rbs_collection/regexp_parser/2.8/regexp_parser.rbs +0 -17
  76. data/.gem_rbs_collection/rubocop/1.57/.rbs_meta.yaml +0 -9
  77. data/.gem_rbs_collection/rubocop/1.57/rubocop.rbs +0 -208
  78. data/.gem_rbs_collection/rubocop-ast/1.46/.rbs_meta.yaml +0 -9
  79. data/.gem_rbs_collection/rubocop-ast/1.46/rubocop-ast.rbs +0 -903
  80. data/.gem_rbs_collection/rubyzip/3.2/.rbs_meta.yaml +0 -9
  81. data/.gem_rbs_collection/rubyzip/3.2/manifest.yaml +0 -8
  82. data/.gem_rbs_collection/rubyzip/3.2/zip/central_directory.rbs +0 -42
  83. data/.gem_rbs_collection/rubyzip/3.2/zip/compressor.rbs +0 -5
  84. data/.gem_rbs_collection/rubyzip/3.2/zip/constants.rbs +0 -47
  85. data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/aes_encryption.rbs +0 -30
  86. data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/decrypted_io.rbs +0 -9
  87. data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/encryption.rbs +0 -7
  88. data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/null_encryption.rbs +0 -19
  89. data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/traditional_encryption.rbs +0 -31
  90. data/.gem_rbs_collection/rubyzip/3.2/zip/decompressor.rbs +0 -18
  91. data/.gem_rbs_collection/rubyzip/3.2/zip/deflater.rbs +0 -12
  92. data/.gem_rbs_collection/rubyzip/3.2/zip/dirtyable.rbs +0 -11
  93. data/.gem_rbs_collection/rubyzip/3.2/zip/dos_time.rbs +0 -13
  94. data/.gem_rbs_collection/rubyzip/3.2/zip/entry.rbs +0 -95
  95. data/.gem_rbs_collection/rubyzip/3.2/zip/entry_set.rbs +0 -31
  96. data/.gem_rbs_collection/rubyzip/3.2/zip/errors.rbs +0 -58
  97. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/aes.rbs +0 -24
  98. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/generic.rbs +0 -17
  99. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/ntfs.rbs +0 -23
  100. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/old_unix.rbs +0 -22
  101. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/universal_time.rbs +0 -30
  102. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/unix.rbs +0 -20
  103. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/unknown.rbs +0 -15
  104. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/zip64.rbs +0 -26
  105. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field.rbs +0 -21
  106. data/.gem_rbs_collection/rubyzip/3.2/zip/file.rbs +0 -131
  107. data/.gem_rbs_collection/rubyzip/3.2/zip/file_split.rbs +0 -14
  108. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/dir.rbs +0 -33
  109. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/directory_iterator.rbs +0 -21
  110. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/file.rbs +0 -63
  111. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/file_stat.rbs +0 -55
  112. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/zip_file_name_mapper.rbs +0 -35
  113. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem.rbs +0 -7
  114. data/.gem_rbs_collection/rubyzip/3.2/zip/inflater.rbs +0 -10
  115. data/.gem_rbs_collection/rubyzip/3.2/zip/input_stream.rbs +0 -22
  116. data/.gem_rbs_collection/rubyzip/3.2/zip/ioextras/abstract_input_stream.rbs +0 -29
  117. data/.gem_rbs_collection/rubyzip/3.2/zip/ioextras/abstract_output_stream.rbs +0 -17
  118. data/.gem_rbs_collection/rubyzip/3.2/zip/ioextras.rbs +0 -13
  119. data/.gem_rbs_collection/rubyzip/3.2/zip/null_compressor.rbs +0 -10
  120. data/.gem_rbs_collection/rubyzip/3.2/zip/null_decompressor.rbs +0 -8
  121. data/.gem_rbs_collection/rubyzip/3.2/zip/null_input_stream.rbs +0 -6
  122. data/.gem_rbs_collection/rubyzip/3.2/zip/output_stream.rbs +0 -30
  123. data/.gem_rbs_collection/rubyzip/3.2/zip/pass_thru_compressor.rbs +0 -10
  124. data/.gem_rbs_collection/rubyzip/3.2/zip/pass_thru_decompressor.rbs +0 -10
  125. data/.gem_rbs_collection/rubyzip/3.2/zip/streamable_directory.rbs +0 -5
  126. data/.gem_rbs_collection/rubyzip/3.2/zip/streamable_stream.rbs +0 -15
  127. data/.gem_rbs_collection/rubyzip/3.2/zip/version.rbs +0 -3
  128. data/.gem_rbs_collection/rubyzip/3.2/zip.rbs +0 -40
  129. data/.mutant.yml +0 -8
  130. data/Rakefile +0 -633
  131. data/Steepfile +0 -18
  132. data/benchmark.rb +0 -406
  133. data/docs/ARCHITECTURE.md +0 -514
  134. data/docs/DEVELOPMENT.md +0 -137
  135. data/docs/MUTATION_TESTING.md +0 -52
  136. data/docs/PEER_LIBRARIES.md +0 -121
  137. data/docs/QUALITY_ASSURANCE.md +0 -26
  138. data/docs/SPEC_SOURCES.md +0 -48
  139. data/docs/assets/benchmark_results.svg +0 -144
  140. data/docs/assets/lsp_autocompletion.png +0 -0
  141. data/docs/assets/playground_preview.png +0 -0
  142. data/docs/coi-serviceworker.js +0 -82
  143. data/docs/office_thread.js +0 -77
  144. data/docs/preview.html +0 -719
  145. data/docs/visual/VisualGallery.md +0 -4683
  146. data/docs/wasm/ruby.wasm +0 -0
  147. data/docs/wasm/wasm_doc_helper.css +0 -351
  148. data/docs/wasm/wasm_doc_helper.js +0 -439
  149. data/docs/zeta.js +0 -1107
  150. data/rbs_collection.lock.yaml +0 -252
  151. data/rbs_collection.yaml +0 -19
  152. data/vendor/sdk_runner/Program.cs +0 -93
  153. data/vendor/sdk_runner/sdk_runner.csproj +0 -13
@@ -1,252 +0,0 @@
1
- ---
2
- path: ".gem_rbs_collection"
3
- gems:
4
- - name: ast
5
- version: '2.4'
6
- source:
7
- type: git
8
- name: ruby/gem_rbs_collection
9
- revision: 82762423fc5694b82888ea89a972847cf19838c2
10
- remote: https://github.com/ruby/gem_rbs_collection.git
11
- repo_dir: gems
12
- - name: bigdecimal
13
- version: 4.1.2
14
- source:
15
- type: rubygems
16
- - name: concurrent-ruby
17
- version: '1.1'
18
- source:
19
- type: git
20
- name: ruby/gem_rbs_collection
21
- revision: 82762423fc5694b82888ea89a972847cf19838c2
22
- remote: https://github.com/ruby/gem_rbs_collection.git
23
- repo_dir: gems
24
- - name: csv
25
- version: '3.3'
26
- source:
27
- type: git
28
- name: ruby/gem_rbs_collection
29
- revision: 82762423fc5694b82888ea89a972847cf19838c2
30
- remote: https://github.com/ruby/gem_rbs_collection.git
31
- repo_dir: gems
32
- - name: delegate
33
- version: '0'
34
- source:
35
- type: stdlib
36
- - name: digest
37
- version: '0'
38
- source:
39
- type: stdlib
40
- - name: erb
41
- version: '0'
42
- source:
43
- type: stdlib
44
- - name: ffi
45
- version: 1.17.4
46
- source:
47
- type: rubygems
48
- - name: fileutils
49
- version: '0'
50
- source:
51
- type: stdlib
52
- - name: forwardable
53
- version: '0'
54
- source:
55
- type: stdlib
56
- - name: io-console
57
- version: '0'
58
- source:
59
- type: stdlib
60
- - name: json
61
- version: '0'
62
- source:
63
- type: stdlib
64
- - name: language_server-protocol
65
- version: 3.17.0.6
66
- source:
67
- type: rubygems
68
- - name: lint_roller
69
- version: '1.1'
70
- source:
71
- type: git
72
- name: ruby/gem_rbs_collection
73
- revision: 82762423fc5694b82888ea89a972847cf19838c2
74
- remote: https://github.com/ruby/gem_rbs_collection.git
75
- repo_dir: gems
76
- - name: listen
77
- version: '3.9'
78
- source:
79
- type: git
80
- name: ruby/gem_rbs_collection
81
- revision: 82762423fc5694b82888ea89a972847cf19838c2
82
- remote: https://github.com/ruby/gem_rbs_collection.git
83
- repo_dir: gems
84
- - name: logger
85
- version: '1.7'
86
- source:
87
- type: git
88
- name: ruby/gem_rbs_collection
89
- revision: 82762423fc5694b82888ea89a972847cf19838c2
90
- remote: https://github.com/ruby/gem_rbs_collection.git
91
- repo_dir: gems
92
- - name: monitor
93
- version: '0'
94
- source:
95
- type: stdlib
96
- - name: nokogiri
97
- version: '1.11'
98
- source:
99
- type: git
100
- name: ruby/gem_rbs_collection
101
- revision: 9ab762c8247028f90620fc93c4e7aac20eb693d7
102
- remote: https://github.com/ruby/gem_rbs_collection.git
103
- repo_dir: gems
104
- - name: openssl
105
- version: '0'
106
- source:
107
- type: stdlib
108
- - name: optparse
109
- version: '0'
110
- source:
111
- type: stdlib
112
- - name: parallel
113
- version: '1.20'
114
- source:
115
- type: git
116
- name: ruby/gem_rbs_collection
117
- revision: 82762423fc5694b82888ea89a972847cf19838c2
118
- remote: https://github.com/ruby/gem_rbs_collection.git
119
- repo_dir: gems
120
- - name: parser
121
- version: '3.2'
122
- source:
123
- type: git
124
- name: ruby/gem_rbs_collection
125
- revision: 82762423fc5694b82888ea89a972847cf19838c2
126
- remote: https://github.com/ruby/gem_rbs_collection.git
127
- repo_dir: gems
128
- - name: pbt
129
- version: 0.7.0
130
- source:
131
- type: rubygems
132
- - name: pp
133
- version: '0'
134
- source:
135
- type: stdlib
136
- - name: prettyprint
137
- version: '0'
138
- source:
139
- type: stdlib
140
- - name: prism
141
- version: 1.9.0
142
- source:
143
- type: rubygems
144
- - name: rainbow
145
- version: '3.0'
146
- source:
147
- type: git
148
- name: ruby/gem_rbs_collection
149
- revision: 82762423fc5694b82888ea89a972847cf19838c2
150
- remote: https://github.com/ruby/gem_rbs_collection.git
151
- repo_dir: gems
152
- - name: rake
153
- version: '13.0'
154
- source:
155
- type: git
156
- name: ruby/gem_rbs_collection
157
- revision: 82762423fc5694b82888ea89a972847cf19838c2
158
- remote: https://github.com/ruby/gem_rbs_collection.git
159
- repo_dir: gems
160
- - name: random-formatter
161
- version: '0'
162
- source:
163
- type: stdlib
164
- - name: rbs
165
- version: 4.1.2
166
- source:
167
- type: rubygems
168
- - name: rdoc
169
- version: '0'
170
- source:
171
- type: stdlib
172
- - name: regexp_parser
173
- version: '2.8'
174
- source:
175
- type: git
176
- name: ruby/gem_rbs_collection
177
- revision: 82762423fc5694b82888ea89a972847cf19838c2
178
- remote: https://github.com/ruby/gem_rbs_collection.git
179
- repo_dir: gems
180
- - name: rubocop
181
- version: '1.57'
182
- source:
183
- type: git
184
- name: ruby/gem_rbs_collection
185
- revision: 82762423fc5694b82888ea89a972847cf19838c2
186
- remote: https://github.com/ruby/gem_rbs_collection.git
187
- repo_dir: gems
188
- - name: rubocop-ast
189
- version: '1.46'
190
- source:
191
- type: git
192
- name: ruby/gem_rbs_collection
193
- revision: 82762423fc5694b82888ea89a972847cf19838c2
194
- remote: https://github.com/ruby/gem_rbs_collection.git
195
- repo_dir: gems
196
- - name: ruby_wasm
197
- version: 2.9.4
198
- source:
199
- type: rubygems
200
- - name: rubyzip
201
- version: '3.2'
202
- source:
203
- type: git
204
- name: ruby/gem_rbs_collection
205
- revision: 9ab762c8247028f90620fc93c4e7aac20eb693d7
206
- remote: https://github.com/ruby/gem_rbs_collection.git
207
- repo_dir: gems
208
- - name: securerandom
209
- version: '0'
210
- source:
211
- type: stdlib
212
- - name: singleton
213
- version: '0'
214
- source:
215
- type: stdlib
216
- - name: socket
217
- version: '0'
218
- source:
219
- type: stdlib
220
- - name: stringio
221
- version: '0'
222
- source:
223
- type: stdlib
224
- - name: strscan
225
- version: '0'
226
- source:
227
- type: stdlib
228
- - name: tempfile
229
- version: '0'
230
- source:
231
- type: stdlib
232
- - name: tmpdir
233
- version: '0'
234
- source:
235
- type: stdlib
236
- - name: tsort
237
- version: '0'
238
- source:
239
- type: stdlib
240
- - name: uri
241
- version: '0'
242
- source:
243
- type: stdlib
244
- - name: webrick
245
- version: 1.9.2
246
- source:
247
- type: rubygems
248
- - name: zlib
249
- version: '0'
250
- source:
251
- type: stdlib
252
- gemfile_lock_path: Gemfile.lock
data/rbs_collection.yaml DELETED
@@ -1,19 +0,0 @@
1
- # Download sources
2
- sources:
3
- - type: git
4
- name: ruby/gem_rbs_collection
5
- remote: https://github.com/ruby/gem_rbs_collection.git
6
- revision: main
7
- repo_dir: gems
8
-
9
- # You can specify local directories as sources also.
10
- # - type: local
11
- # path: path/to/your/local/repository
12
-
13
- # A directory to install the downloaded RBSs
14
- path: .gem_rbs_collection
15
-
16
- # gems:
17
- # # If you want to avoid installing rbs files for gems, you can specify them here.
18
- # - name: GEM_NAME
19
- # ignore: true
@@ -1,93 +0,0 @@
1
- using Microsoft.CodeAnalysis.CSharp.Scripting;
2
- using Microsoft.CodeAnalysis.Scripting;
3
- using DocumentFormat.OpenXml.Packaging;
4
- using DocumentFormat.OpenXml.Validation;
5
-
6
- if (args.Length < 2)
7
- {
8
- Console.Error.WriteLine("Usage: dotnet run --project vendor/sdk_runner -- <scenario.cs> <xlsx-path>");
9
- return 2;
10
- }
11
-
12
- var scenarioPath = Path.GetFullPath(args[0]);
13
- var xlsxPath = Path.GetFullPath(args[1]);
14
-
15
- if (!File.Exists(scenarioPath))
16
- {
17
- Console.Error.WriteLine($"Scenario file not found: {scenarioPath}");
18
- return 2;
19
- }
20
-
21
- if (!File.Exists(xlsxPath))
22
- {
23
- Console.Error.WriteLine($"XLSX file not found: {xlsxPath}");
24
- return 2;
25
- }
26
-
27
- var code = await File.ReadAllTextAsync(scenarioPath);
28
- var result = await RunScenario(code, xlsxPath);
29
- if (result.Success)
30
- {
31
- Console.WriteLine("SCENARIO_PASS");
32
- return 0;
33
- }
34
-
35
- Console.Error.WriteLine(result.ErrorOutput);
36
- return 1;
37
-
38
-
39
- async Task<ScenarioExecResult> RunScenario(string code, string xlsxPath)
40
- {
41
- var globals = new ScenarioContext(xlsxPath);
42
-
43
- var options = ScriptOptions.Default
44
- .AddReferences(
45
- typeof(object).Assembly,
46
- typeof(Enumerable).Assembly,
47
- typeof(Console).Assembly,
48
- typeof(SpreadsheetDocument).Assembly,
49
- typeof(OpenXmlValidator).Assembly,
50
- typeof(System.Security.Cryptography.Aes).Assembly
51
- )
52
- .AddImports(
53
- "System",
54
- "System.IO",
55
- "System.Linq",
56
- "System.Collections.Generic",
57
- "System.Security.Cryptography",
58
- "DocumentFormat.OpenXml",
59
- "DocumentFormat.OpenXml.Packaging",
60
- "DocumentFormat.OpenXml.Spreadsheet",
61
- "DocumentFormat.OpenXml.Validation",
62
- "DocumentFormat.OpenXml.CustomProperties",
63
- "DocumentFormat.OpenXml.VariantTypes"
64
- );
65
-
66
- try
67
- {
68
- await CSharpScript.RunAsync(code, options, globals, typeof(ScenarioContext));
69
- return new ScenarioExecResult { Success = true };
70
- }
71
- catch (CompilationErrorException ex)
72
- {
73
- var errorMsg = "SCENARIO_COMPILE_ERROR\n" + string.Join("\n", ex.Diagnostics.Select(d => d.ToString()));
74
- return new ScenarioExecResult { Success = false, ErrorOutput = errorMsg };
75
- }
76
- catch (Exception ex)
77
- {
78
- var errorMsg = "SCENARIO_FAIL\n" + ex.ToString();
79
- return new ScenarioExecResult { Success = false, ErrorOutput = errorMsg };
80
- }
81
- }
82
-
83
- record ScenarioExecResult(bool Success = false, string ErrorOutput = "");
84
-
85
- public sealed class ScenarioContext
86
- {
87
- public ScenarioContext(string xlsxPath)
88
- {
89
- XlsxPath = xlsxPath;
90
- }
91
-
92
- public string XlsxPath { get; }
93
- }
@@ -1,13 +0,0 @@
1
- <Project Sdk="Microsoft.NET.Sdk">
2
- <PropertyGroup>
3
- <OutputType>Exe</OutputType>
4
- <TargetFramework>net8.0</TargetFramework>
5
- <ImplicitUsings>enable</ImplicitUsings>
6
- <Nullable>enable</Nullable>
7
- </PropertyGroup>
8
-
9
- <ItemGroup>
10
- <PackageReference Include="DocumentFormat.OpenXml" Version="3.0.2" />
11
- <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="4.11.0" />
12
- </ItemGroup>
13
- </Project>