- Created create_excel_xlsxwriter.py and update_excel_xlsxwriter.py - Uses openpyxl exclusively to preserve Excel formatting and formulas - Updated server.js to use new xlsxwriter scripts for form submissions - Maintains all original functionality while ensuring proper Excel file handling 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
57 lines
920 B
Python
57 lines
920 B
Python
# Copyright (c) 2010-2024 openpyxl
|
|
|
|
from abc import abstractproperty
|
|
from openpyxl.compat.abc import ABC
|
|
|
|
|
|
class ISerialisableFile(ABC):
|
|
|
|
"""
|
|
Interface for Serialisable classes that represent files in the archive
|
|
"""
|
|
|
|
|
|
@abstractproperty
|
|
def id(self):
|
|
"""
|
|
Object id making it unique
|
|
"""
|
|
pass
|
|
|
|
|
|
@abstractproperty
|
|
def _path(self):
|
|
"""
|
|
File path in the archive
|
|
"""
|
|
pass
|
|
|
|
|
|
@abstractproperty
|
|
def _namespace(self):
|
|
"""
|
|
Qualified namespace when serialised
|
|
"""
|
|
pass
|
|
|
|
|
|
@abstractproperty
|
|
def _type(self):
|
|
"""
|
|
The content type for the manifest
|
|
"""
|
|
|
|
|
|
@abstractproperty
|
|
def _rel_type(self):
|
|
"""
|
|
The content type for relationships
|
|
"""
|
|
|
|
|
|
@abstractproperty
|
|
def _rel_id(self):
|
|
"""
|
|
Links object with parent
|
|
"""
|