react-native-nitro-xlsx 0.1.1

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 (45) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +73 -0
  3. package/NitroXlsx.podspec +110 -0
  4. package/README.md +340 -0
  5. package/android/CMakeLists.txt +52 -0
  6. package/android/build.gradle +49 -0
  7. package/android/cpp-adapter.cpp +9 -0
  8. package/android/src/main/AndroidManifest.xml +2 -0
  9. package/android/src/main/java/com/margelo/nitro/xlsx/NitroXlsxPackage.kt +22 -0
  10. package/cpp/HybridNitroXlsx.cpp +29 -0
  11. package/cpp/HybridNitroXlsx.hpp +19 -0
  12. package/cpp/HybridXlsxCellFormat.cpp +263 -0
  13. package/cpp/HybridXlsxCellFormat.hpp +111 -0
  14. package/cpp/HybridXlsxWorkbook.cpp +184 -0
  15. package/cpp/HybridXlsxWorkbook.hpp +41 -0
  16. package/cpp/HybridXlsxWorksheet.cpp +316 -0
  17. package/cpp/HybridXlsxWorksheet.hpp +86 -0
  18. package/nitro.json +19 -0
  19. package/nitrogen/generated/.gitattributes +1 -0
  20. package/nitrogen/generated/android/NitroXlsx+autolinking.cmake +84 -0
  21. package/nitrogen/generated/android/NitroXlsx+autolinking.gradle +27 -0
  22. package/nitrogen/generated/android/NitroXlsxOnLoad.cpp +49 -0
  23. package/nitrogen/generated/android/NitroXlsxOnLoad.hpp +34 -0
  24. package/nitrogen/generated/android/kotlin/com/margelo/nitro/xlsx/NitroXlsxOnLoad.kt +35 -0
  25. package/nitrogen/generated/ios/NitroXlsx+autolinking.rb +62 -0
  26. package/nitrogen/generated/ios/NitroXlsx-Swift-Cxx-Bridge.cpp +17 -0
  27. package/nitrogen/generated/ios/NitroXlsx-Swift-Cxx-Bridge.hpp +27 -0
  28. package/nitrogen/generated/ios/NitroXlsx-Swift-Cxx-Umbrella.hpp +38 -0
  29. package/nitrogen/generated/ios/NitroXlsxAutolinking.mm +35 -0
  30. package/nitrogen/generated/ios/NitroXlsxAutolinking.swift +16 -0
  31. package/nitrogen/generated/shared/c++/CellType.hpp +100 -0
  32. package/nitrogen/generated/shared/c++/HybridNitroXlsxSpec.cpp +23 -0
  33. package/nitrogen/generated/shared/c++/HybridNitroXlsxSpec.hpp +68 -0
  34. package/nitrogen/generated/shared/c++/HybridXlsxCellFormatSpec.cpp +62 -0
  35. package/nitrogen/generated/shared/c++/HybridXlsxCellFormatSpec.hpp +104 -0
  36. package/nitrogen/generated/shared/c++/HybridXlsxWorkbookSpec.cpp +27 -0
  37. package/nitrogen/generated/shared/c++/HybridXlsxWorkbookSpec.hpp +77 -0
  38. package/nitrogen/generated/shared/c++/HybridXlsxWorksheetSpec.cpp +69 -0
  39. package/nitrogen/generated/shared/c++/HybridXlsxWorksheetSpec.hpp +120 -0
  40. package/package.json +47 -0
  41. package/src/__mocks__/react-native-nitro-modules.ts +28 -0
  42. package/src/__mocks__/react-native.ts +1 -0
  43. package/src/__tests__/index.test.ts +141 -0
  44. package/src/index.ts +195 -0
  45. package/src/specs/NitroXlsx.nitro.ts +154 -0
@@ -0,0 +1,154 @@
1
+ import { type HybridObject } from 'react-native-nitro-modules'
2
+
3
+ export type CellType = 'empty' | 'string' | 'number' | 'boolean' | 'date' | 'error' | 'formula' | 'blank'
4
+
5
+ export interface XlsxWorkbook extends HybridObject<{ ios: 'c++'; android: 'c++' }> {
6
+ addWorksheet(name?: string): XlsxWorksheet
7
+ getWorksheet(index: number): XlsxWorksheet
8
+ getWorksheetByName(name: string): XlsxWorksheet
9
+ getOrAddWorksheet(name: string): XlsxWorksheet
10
+ getWorksheetCount(): number
11
+ addCellFormat(): XlsxCellFormat
12
+ getBuffer(): Promise<ArrayBuffer>
13
+ }
14
+
15
+ export interface XlsxWorksheet extends HybridObject<{ ios: 'c++'; android: 'c++' }> {
16
+ // Basic write methods
17
+ writeString(row: number, col: number, value: string, format?: XlsxCellFormat): void
18
+ writeNumber(row: number, col: number, value: number, format?: XlsxCellFormat): void
19
+ writeBoolean(row: number, col: number, value: boolean, format?: XlsxCellFormat): void
20
+ writeBlank(row: number, col: number, format?: XlsxCellFormat): void
21
+
22
+ // Formula support
23
+ writeFormula(row: number, col: number, formula: string, format?: XlsxCellFormat): void
24
+ writeFormulaNum(row: number, col: number, formula: string, number: number, format?: XlsxCellFormat): void
25
+ writeFormulaString(row: number, col: number, formula: string, str: string, format?: XlsxCellFormat): void
26
+ writeFormulaBoolean(row: number, col: number, formula: string, boolVal: boolean, format?: XlsxCellFormat): void
27
+ writeArrayFormula(firstRow: number, firstCol: number, lastRow: number, lastCol: number, formula: string, format?: XlsxCellFormat): void
28
+
29
+ // Date/DateTime support
30
+ writeDatetime(row: number, col: number, datetime: number, format?: XlsxCellFormat): void
31
+ writeURL(row: number, col: number, url: string, format?: XlsxCellFormat): void
32
+
33
+ // Column/Row operations
34
+ setColumn(firstCol: number, lastCol: number, width: number, format?: XlsxCellFormat): void
35
+ setRow(row: number, height: number, format?: XlsxCellFormat): void
36
+
37
+ // Merge cells
38
+ mergeRange(firstRow: number, firstCol: number, lastRow: number, lastCol: number, value: string, format?: XlsxCellFormat): void
39
+ mergeRangeNum(firstRow: number, firstCol: number, lastRow: number, lastCol: number, value: number, format?: XlsxCellFormat): void
40
+
41
+ // Image (uses file path)
42
+ insertImage(row: number, col: number, path: string, xOffset?: number, yOffset?: number, xScale?: number, yScale?: number): void
43
+ insertImageBuffer(row: number, col: number, buffer: ArrayBuffer, extension: string, xOffset?: number, yOffset?: number, xScale?: number, yScale?: number): void
44
+
45
+ // Autofilter
46
+ autofilter(firstRow: number, firstCol: number, lastRow: number, lastCol: number): void
47
+
48
+ // Freeze/Split panes
49
+ freezePanes(row: number, col: number): void
50
+ splitPanes(row: number, col: number): void
51
+
52
+ // Tab appearance
53
+ setTabColor(color: number): void
54
+ hide(): void
55
+ activate(): void
56
+ setFirstSheet(): void
57
+ protect(password?: string): void
58
+
59
+ // Page setup
60
+ setPortrait(): void
61
+ setLandscape(): void
62
+ setPaper(paperType: number): void
63
+ setHeader(header: string): void
64
+ setFooter(footer: string): void
65
+ setPrintArea(firstRow: number, firstCol: number, lastRow: number, lastCol: number): void
66
+ fitToPages(width: number, height: number): void
67
+ setZoom(scale: number): void
68
+ setGridlines(option: number): void
69
+ centerHorizontally(): void
70
+ centerVertically(): void
71
+
72
+ // Outline/Grouping
73
+ setOutline(level: number): void
74
+ setColumnHidden(firstCol: number, lastCol: number, hidden: boolean): void
75
+ setRowHidden(row: number, hidden: boolean): void
76
+
77
+ // Read methods
78
+ getCellValue(row: number, col: number): string | number | boolean | null
79
+ getCellString(row: number, col: number): string
80
+ getCellRawValue(row: number, col: number): string
81
+ getCellType(row: number, col: number): CellType
82
+ getCellFormat(row: number, col: number): XlsxCellFormat
83
+ getRowCount(): number
84
+ getColumnCount(): number
85
+ getLastRow(): number
86
+ getLastColumn(): number
87
+ getName(): string
88
+ }
89
+
90
+ export interface XlsxCellFormat extends HybridObject<{ ios: 'c++'; android: 'c++' }> {
91
+ // Font
92
+ setFontName(name: string): void
93
+ setFontSize(size: number): void
94
+ setFontColor(color: number): void
95
+ setFontScript(style: number): void
96
+ setBold(): void
97
+ setItalic(): void
98
+ setUnderline(style?: number): void
99
+ setStrikeout(): void
100
+
101
+ // Alignment
102
+ setAlign(align: number): void
103
+ setVerticalAlign(align: number): void
104
+ setTextWrap(): void
105
+ setRotation(angle: number): void
106
+ setIndent(level: number): void
107
+ setShrink(): void
108
+
109
+ // Number format
110
+ setNumFormat(format: string): void
111
+ setNumFormatIndex(index: number): void
112
+
113
+ // Colors/Pattern
114
+ setBgColor(color: number): void
115
+ setFgColor(color: number): void
116
+ setPattern(pattern: number): void
117
+
118
+ // Borders
119
+ setBorder(style: number): void
120
+ setBorderColor(color: number): void
121
+ setBottom(style: number): void
122
+ setTop(style: number): void
123
+ setLeft(style: number): void
124
+ setRight(style: number): void
125
+ setBottomColor(color: number): void
126
+ setTopColor(color: number): void
127
+ setLeftColor(color: number): void
128
+ setRightColor(color: number): void
129
+ setDiagonal(style: number): void
130
+ setDiagonalColor(color: number): void
131
+
132
+ // Protection
133
+ setLocked(): void
134
+ setUnlocked(): void
135
+
136
+ // Other
137
+ setHyperlink(): void
138
+ setFontOnly(): void
139
+
140
+ // Read format properties (getters)
141
+ getFontName(): string
142
+ getFontSize(): number
143
+ getFontColor(): number
144
+ getIsBold(): boolean
145
+ getIsItalic(): boolean
146
+ getNumFormat(): string
147
+ getBgColor(): number
148
+ }
149
+
150
+ export interface NitroXlsx extends HybridObject<{ ios: 'c++'; android: 'c++' }> {
151
+ createWorkbook(): XlsxWorkbook
152
+ openWorkbook(path: string): XlsxWorkbook
153
+ openWorkbookFromBuffer(buffer: ArrayBuffer): XlsxWorkbook
154
+ }