* feat: Style builder for report xlsx formatting
* fix: update report to use direct import for query report execution
* refactor: simplify module method retrieval in report execution
* feat: get xlsx styles for report
* refactor: enhance XLSXStyleBuilder with currency formatting and default style registration
* feat: add xlsxwriter dependency for enhanced XLSX report generation
* refactor: enhance XLSXStyleBuilder with improved style registration and formatting methods
* feat: enhance XLSX export functionality with improved styling and metadata support
* refactor: default formatting of currency
* chore: remove some typo
* feat: update make_xlsx function to use xlsxwriter for improved Excel file generation and styling
* perf: some micro optimisations
* refactor: inline generator back and improve condition
* refactor: replace frappe.request_cache with functools.cache
* fix: handle styling in email
* fix: fix old test case to handle styles in export
* refactor: enhance XLSX style handling and registration methods
* refactor: improve currency formatting logic
* fix: update make_xlsx to use constant_memory for large datasets and improve row style handling
* fix: handle None style_id in XLSXStyleBuilder methods to prevent errors
* fix: include owner field with proper doctype naming
* fix: set default date format in XLSX workbook creation
* fix: pass applied filters to metadata
* fix: getting accurate field info for report view exporting
* chore: Minor changes
* feat: add function to generate default XLSX styles for exports
* feat: integrate default XLSX styles into builder report export functionality
* feat: styles on export docs xlsx
* feat: enhance make_xlsx function to support file path saving
* feat: add make_xls function for creating Excel files in old format and improve sheet name sanitization
* fix: handle default date formatting
* refactor: changes xlsx builder usage
* refactor: update xlsx style builder usage
* refactor: enhance field info retrieval with default field support
* fix: handle update key in report data
* refactor: enhance get_field_info to include options and improve label retrieval
* fix: improve error handling for unsupported file formats and ensure applied filters are set correctly
* refactor: update XLSX header index handling and improve metadata structure
* fix: handle currency formatting in reportview export
* fix: update default date format to datetime format in XLSX creation
* fix: update serial number field in auto email report to use 'sr' instead of 'idx'
* fix: enhance XLSX styling by adding right alignment for specific field types
* chore: remove unused code
* fix: update XLSXMetadata attributes for improved report styling options
* perf: further improve currency styling
* fix: correct column index mapping in XLSX export header
* refactor: optimize indentation style registration in XLSXStyleBuilder
* perf: improve apply_indentations
* fix: reduce more attr lookup
* refactor: remove duplication
* fix: use report name in XLSX export instead of hardcoded title
* fix: remove ignore_visible_idx from XLSXMetadata
* fix: review
* fix: update XLSX style fetching logic in build_xlsx_data function
* fix: add right alignment to date, time, and datetime styles in XLSXStyleBuilder
* fix: simplify number format handling in XLSXStyleBuilder
* fix: register common styles in XLSXStyleBuilder for improved style management
* test: add tests for XLSX styles structure and fieldtype column styles in XLSXStyleBuilder
---------
Co-authored-by: Sagar Vora <16315650+sagarvora@users.noreply.github.com>
* fix: Always bold report header row
* fix: update test cases
* refactor: add option to bold filter rows in XLSX output
* chore: minor changes
* chore: rename index variable
* revert: undo bold filters param use
* refactor: remove duplication for building xlsx data
* revert: add has_filters parameter to check for filter row bold
* refactor: add type hints and docstrings for XLSX data handling functions
The way openpyxl parses files is very different, and read only seems to break with certain files
It tries to head information about the max rows/columns from the header in the case of read only
which can be wrong sometimes.
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
Converted all possible usages of re.* that weren't compiling the regex
separately and re-using it. Separated out the compiled patterns as
global variables. Repetitive patterns could be made DRY-er.
Would be nicer to have all regexes in a single module so that we could
re-use better, keep track of outdated, and keep checks for possible
reDos' etc
The license.txt file has been replaced with LICENSE for quite a while
now. INAL but it didn't seem accurate to say "hey, checkout license.txt
although there's no such file". Apart from this, there were
inconsistencies in the headers altogether...this change brings
consistency.
* migrate more functions to file class
* add get_content(), returns file content from file_name
* move get_file_path() to get_full_path() to decrease naming ambiguity
Signed-off-by: Chinmay Pai <chinmaydpai@gmail.com>
* Data export tool
New doctype to export data
Child table export option
Ability to add filter
* Filter view refactor
Separated filter css
* Moved exporter script from data import doctype to data export doctype
* some input validation
* removed unwanted file and some style fixes
* removed console log
* hide sidebar
* renamed export method
* added data export link in setup module page
* minor fix
* refactor exporter.py
* data export ui tweaks
* codacy and bug fix
* silly code fixes
* [minor] indentation fix
StringIO and cStringIO modules are replaced with io.StringIO in
Python 3. six.StringIO is an alias for StringIO.StringIO in
Python 2 and io.StringIO in Python 3