Files
bussines_case_automation/venv/lib/python3.12/site-packages/xlsxwriter/chart_title.py
andrei 0e2e1bddba Add xlsxwriter-based Excel generation scripts with openpyxl implementation
- 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>
2025-09-22 13:53:06 +00:00

111 lines
3.3 KiB
Python

###############################################################################
#
# ChartTitle - A class for representing Excel chart titles.
#
# SPDX-License-Identifier: BSD-2-Clause
#
# Copyright (c) 2013-2025, John McNamara, jmcnamara@cpan.org
#
from typing import Any, Dict, Optional
class ChartTitle:
"""
A class to represent an Excel chart title.
This class encapsulates all title related properties and methods for the
chart title and axis titles.
"""
def __init__(self) -> None:
"""
Initialize a ChartTitle instance.
"""
self.font: Optional[Dict[str, Any]] = None
self.name: Optional[str] = None
self.formula: Optional[str] = None
self.data_id: Optional[int] = None
self.layout: Optional[Dict[str, Any]] = None
self.overlay: Optional[bool] = None
self.hidden: bool = False
self.line: Optional[Dict[str, Any]] = None
self.fill: Optional[Dict[str, Any]] = None
self.pattern: Optional[Dict[str, Any]] = None
self.gradient: Optional[Dict[str, Any]] = None
def has_name(self) -> bool:
"""
Check if the title has a text name set.
Returns:
True if name has been set.
"""
return self.name is not None and self.name != ""
def has_formula(self) -> bool:
"""
Check if the title has a formula set.
Returns:
True if formula has been set.
"""
return self.formula is not None
def has_formatting(self) -> bool:
"""
Check if the title has any formatting properties set.
Returns:
True if the title has line, fill, pattern, or gradient formatting.
"""
has_line = self.line is not None and self.line.get("defined", False)
has_fill = self.fill is not None and self.fill.get("defined", False)
has_pattern = self.pattern
has_gradient = self.gradient
return has_line or has_fill or has_pattern or has_gradient
def get_formatting(self) -> Dict[str, Any]:
"""
Get a dictionary containing the formatting properties.
Returns:
A dictionary with line, fill, pattern, and gradient properties.
"""
return {
"line": self.line,
"fill": self.fill,
"pattern": self.pattern,
"gradient": self.gradient,
}
def is_hidden(self) -> bool:
"""
Check if the title is explicitly hidden.
Returns:
True if title is hidden.
"""
return self.hidden
def __repr__(self) -> str:
"""
Return a string representation of the ChartTitle.
"""
return (
f"ChartTitle(\n"
f" name = {self.name!r},\n"
f" formula = {self.formula!r},\n"
f" hidden = {self.hidden!r},\n"
f" font = {self.font!r},\n"
f" line = {self.line!r},\n"
f" fill = {self.fill!r},\n"
f" pattern = {self.pattern!r},\n"
f" gradient = {self.gradient!r},\n"
f" layout = {self.layout!r},\n"
f" overlay = {self.overlay!r},\n"
f" has_formatting = {self.has_formatting()!r},\n"
f")\n"
)