1#![forbid(unsafe_code)]
80#![deny(missing_docs)]
81
82mod address;
83mod calculation;
84mod cell;
85mod defined_name;
86mod diagnostic;
87mod draft;
88mod error;
89mod formula;
90mod presentation;
91mod table;
92mod workbook;
93mod xlsx;
94
95pub(crate) fn case_insensitive_eq(left: &str, right: &str) -> bool {
96 left.chars()
97 .flat_map(char::to_lowercase)
98 .eq(right.chars().flat_map(char::to_lowercase))
99}
100
101pub use address::{CellAddress, CellRange, Column, EXCEL_MAX_COLUMNS, EXCEL_MAX_ROWS, Row};
102pub use calculation::{
103 ApplyChangesError, ArithmeticSemantics, CalculationCellId, CalculationCellResult,
104 CalculationDecisionReason, CalculationDelta, CalculationDeltaCell, CalculationDeltaPage,
105 CalculationExecutionMode, CalculationIssue, CalculationIssueCode, CalculationLimits,
106 CalculationOptions, CalculationOptionsError, CalculationSnapshot, CancellationToken,
107 CompletedCalculation, CompletedWorkbookTransaction, DefinedNameAnalysis,
108 DefinedNameAnalysisError, DefinedNameAnalysisErrorKind, DefinedNameAnalysisLimitKind,
109 DefinedNameAnalysisOptions, DefinedNameAnalysisOptionsError, DefinedNameDynamicKind,
110 DefinedNameExternalReference, DefinedNameExternalTargetKind, DefinedNameInvalidReason,
111 DefinedNameReferenceArea, DefinedNameSheetSpan, DefinedNameUnsupportedReason,
112 FinancialSolverSemantics, FormulaCapability, FormulaCapabilityEntry, FormulaCapabilityReport,
113 FunctionCatalogEntry, FunctionSupport, FunctionUsageEntry, FunctionUsageReport,
114 InstallDeltaBasisReason, MaterializedCalculationCell, MaterializedResultOrigin,
115 PreparedCalculation, PreparedEditBatch, PreparedWorkbookTransaction, RecalculationMode,
116 SessionError, SessionErrorCode, SessionLimits, TransactionAffectedFormula,
117 TransactionDetailItem, TransactionDetailSection, TransactionImpactCause,
118 TransactionImpactCoverage, TransactionImpactPage, TransactionInstallResultChange,
119 TransactionIssueChange, TransactionIssueChangeKind, TransactionPageCursor,
120 TransactionResultChange, WorkbookCalculationSession, WorkbookTransactionReceipt,
121 WorkbookTransactionReport, analyze_defined_name, analyze_defined_name_cancellable,
122 analyze_defined_name_with_options, calculate_workbook, scan_formula_capabilities,
123 scan_formula_capabilities_with_options, scan_function_usage, scan_function_usage_with_options,
124 supported_function_catalog,
125};
126pub use cell::{
127 Cell, CellContent, CellValue, ExcelError, FiniteNumber, NumberFormat, NumberFormatKind,
128};
129pub use defined_name::{DefinedName, DefinedNameScope};
130pub use diagnostic::{
131 Diagnostic, DiagnosticCode, DiagnosticSeverity, InputHash, OutputHash, Provenance,
132 ProviderIdentity, SourceId, SourceLocation,
133};
134pub use draft::{EditBatch, EditReceipt, WorkbookChange, WorkbookDraft};
135pub use error::{ValidationError, ValidationErrorCode};
136pub use formula::{
137 FormulaCell, FormulaDialect, FormulaMetadata, FormulaText, SavedResult, SavedResultIssue,
138 SharedFormulaRole,
139};
140pub use presentation::{
141 CellPhonetics, ColumnPhoneticVisibility, DocumentPresentation, FrozenPane, PhoneticAlignment,
142 PhoneticProperties, PhoneticRun, PhoneticTextRange, PhoneticType, PhoneticWriteOptions,
143 ResolvedPhoneticRun,
144};
145pub(crate) use presentation::{CellPresentation, PhoneticAnnotation};
146pub use table::{
147 Table, TableAutoFilter, TableCalendarType, TableColorFilter, TableColumn, TableColumnId,
148 TableColumnName, TableCustomFilter, TableCustomFilterOperator, TableCustomFilters,
149 TableDateGroupItem, TableDateTimeGrouping, TableDateTimeValue, TableDynamicFilter,
150 TableDynamicFilterType, TableFilterColumn, TableFilterCriteria, TableFilterItem, TableFormula,
151 TableIconFilter, TableIconSet, TableId, TableName, TableNumericValue, TableSortBy,
152 TableSortCondition, TableSortMethod, TableSortState, TableStyleInfo, TableTopFilter, TableType,
153 TableValueFilters, TotalsRowFunction,
154};
155pub use workbook::{
156 CalculationHints, CalculationMode, DateSystem, Sheet, SheetId, SheetName, SheetVisibility,
157 WorkbookFingerprint, WorkbookSnapshot, WorkbookSource, WorkbookSourceKind,
158};
159pub use xlsx::{
160 OpenOptions, PackageSummary, ReadLimits, ReadOptions, ReadOptionsError, RecalculatedWorkbook,
161 RecalculationWriteOptions, RecalculationWritePolicy, WriteLimits, WriteOptions,
162 WriteOptionsError, WriteProvenance, WriteReport, XlsxDocument, XlsxDocumentKind, XlsxErrorCode,
163 XlsxReadError, XlsxWriteError, XlsxWriteErrorCode, inspect_package, open_xlsx_document,
164 open_xlsx_document_bytes, open_xlsx_document_path, read_xlsx, read_xlsx_bytes, read_xlsx_path,
165 write_preserved_xlsx_bytes, write_recalculated_xlsx, write_recalculated_xlsx_bytes,
166 write_recalculated_xlsx_path, write_xlsx_draft, write_xlsx_draft_bytes, write_xlsx_draft_path,
167};