xlsx2md プログラム仕様

概要:

Excelファイルから値、数式、コメント、図やグラフ情報などを抽出し、Markdownに出力します。

詳細説明:

openpyxlを用いてExcelファイルを読み込み、コマンドライン引数の設定に従って 各種情報をMarkdown形式のテキストファイルおよび画像ファイルとして出力します。

xlsx2md.cell_has_content(cell) → bool
概要:

セルに値、コメント、またはハイパーリンクが含まれているかを判定します。

引数:
param cell:

判定対象のセルオブジェクト。

戻り値:
returns:

コンテンツが含まれていればTrue、それ以外はFalse。

rtype:

bool

xlsx2md.chart_anchor(chart) → str
概要:

グラフのアンカー位置をセルの座標文字列として取得します。

引数:
param chart:

対象のグラフオブジェクト。

戻り値:
returns:

アンカー位置の座標文字列。

rtype:

str

xlsx2md.chart_type_name(chart) → str
概要:

グラフのクラス名とタイプ名を組み合わせた文字列を取得します。

引数:
param chart:

対象のグラフオブジェクト。

戻り値:
returns:

グラフの種類を表す文字列。

rtype:

str

xlsx2md.charts_to_markdown(ws_formula) → str
概要:

ワークシート内のグラフ情報を抽出し、Markdownに変換します。

引数:
param ws_formula:

対象のワークシート。

戻り値:
returns:

グラフ情報のMarkdown文字列。

rtype:

str

xlsx2md.code_escape(value: Any) → str
概要:

Markdownのインラインコード用に、数式のバッククォート崩れを防ぐエスケープ処理を行います。

引数:
param value:

エスケープ対象の値。

type value:

Any

戻り値:
returns:

エスケープされ、バッククォートで囲まれた文字列。

rtype:

str

xlsx2md.comments_to_markdown(ws_formula, bounds) → str
概要:

セルコメントを抽出し、Markdownテーブルを生成します。

引数:
param ws_formula:

対象のワークシート。

param bounds:

使用範囲を示すタプル。

戻り値:
returns:

コメント情報のMarkdown文字列。

rtype:

str

xlsx2md.conditional_formatting_to_markdown(ws_formula) → str
概要:

条件付き書式を抽出し、Markdownテーブルを生成します。

引数:
param ws_formula:

対象のワークシート。

戻り値:
returns:

条件付き書式のMarkdown文字列。

rtype:

str

xlsx2md.data_validations_to_markdown(ws_formula) → str
概要:

データの入力規則を抽出し、Markdownテーブルを生成します。

引数:
param ws_formula:

対象のワークシート。

戻り値:
returns:

データ入力規則のMarkdown文字列。

rtype:

str

xlsx2md.defined_names_to_markdown(wb_formula) → str
概要:

ワークブックの名前付き範囲を抽出し、Markdownテーブルを生成します。

引数:
param wb_formula:

対象のワークブックオブジェクト。

戻り値:
returns:

名前付き範囲のMarkdown文字列。

rtype:

str

xlsx2md.extract_content_to_markdown(input_xlsx: str, output_md: str, image_dir: str, args) → bool
概要:

指定されたExcelファイルから情報を抽出し、Markdownファイルに書き出します。

引数:
param input_xlsx:

入力するExcelファイルのパス。

type input_xlsx:

str

param output_md:

出力するMarkdownファイルのパス。

type output_md:

str

param image_dir:

画像を保存するディレクトリのパス。

type image_dir:

str

param args:

コマンドライン引数を格納したオブジェクト。

戻り値:
returns:

変換が成功した場合はTrue、失敗した場合はFalse。

rtype:

bool

xlsx2md.find_used_bounds(ws_formula, ws_values)
概要:

値、数式、コメント、ハイパーリンクから実質的な使用範囲を推定します。

引数:
param ws_formula:

数式を含むワークシートオブジェクト。

param ws_values:

値を含むワークシートオブジェクト。

戻り値:
returns:

最小行、最小列、最大行、最大列、コンテンツ有無フラグのタプル。

xlsx2md.format_value(value: Any, date_format: str) → str
概要:

Excelセル値を生成AIに読みやすいテキストへ変換します。

引数:
param value:

変換対象の値。

type value:

Any

param date_format:

日時形式のフォーマット文字列。

type date_format:

str

戻り値:
returns:

テキスト形式に変換された値。

rtype:

str

xlsx2md.formulas_to_markdown(ws_formula, ws_values, bounds, args) → str
概要:

ワークシート内の数式情報を抽出し、Markdownテーブルを生成します。

引数:
param ws_formula:

数式を含むワークシート。

param ws_values:

値を含むワークシート。

param bounds:

使用範囲を示すタプル。

param args:

コマンドライン引数を格納したオブジェクト。

戻り値:
returns:

数式情報のMarkdownテーブル文字列。

rtype:

str

xlsx2md.get_cached_value(ws_values, row: int, col: int, date_format: str) → str
概要:

指定したセルのキャッシュされた値を取得し、フォーマットして返します。

引数:
param ws_values:

値を含むワークシート。

param row:

行番号。

type row:

int

param col:

列番号。

type col:

int

param date_format:

日時形式のフォーマット文字列。

type date_format:

str

戻り値:
returns:

フォーマットされたセルの値。

rtype:

str

xlsx2md.get_cell_pair(ws_formula, ws_values, row: int, col: int)
概要:

数式ワークシートと値ワークシートから、同じ位置のセルペアを取得します。

引数:
param ws_formula:

数式を含むワークシート。

param ws_values:

値を含むワークシート。

param row:

行番号。

type row:

int

param col:

列番号。

type col:

int

戻り値:
returns:

数式セルと値セルのタプル。

xlsx2md.get_nested(obj: Any, names: Iterable[str]) → Any | None
概要:

属性名のリストに従って、ネストされた属性の値を安全に取得します。

引数:
param obj:

探索開始のオブジェクト。

type obj:

Any

param names:

属性名のイテラブル。

type names:

Iterable[str]

戻り値:
returns:

取得された属性値、存在しない場合はNone。

rtype:

Optional[Any]

xlsx2md.get_ref(obj: Any, chains: Iterable[Iterable[str]]) → str
概要:

複数の属性名チェーンを順に試し、最初に取得できた値を文字列として返します。

引数:
param obj:

探索開始のオブジェクト。

type obj:

Any

param chains:

属性名チェーンのイテラブル。

type chains:

Iterable[Iterable[str]]

戻り値:
returns:

取得された属性値の文字列。見つからなかった場合は空文字。

rtype:

str

xlsx2md.hidden_to_markdown(ws_formula) → str
概要:

非表示の行列情報を抽出し、Markdownテーブルを生成します。

引数:
param ws_formula:

対象のワークシート。

戻り値:
returns:

非表示情報のMarkdown文字列。

rtype:

str

概要:

ハイパーリンクを抽出し、Markdownテーブルを生成します。

引数:
param ws_formula:

対象のワークシート。

param bounds:

使用範囲を示すタプル。

戻り値:
returns:

ハイパーリンク情報のMarkdown文字列。

rtype:

str

xlsx2md.image_anchor(img) → str
概要:

画像のアンカー位置をセルの座標文字列として取得します。

引数:
param img:

対象の画像オブジェクト。

戻り値:
returns:

アンカー位置の座標文字列。

rtype:

str

xlsx2md.image_extension(img) → str
概要:

画像の拡張子を取得します。

引数:
param img:

対象の画像オブジェクト。

戻り値:
returns:

画像の拡張子。

rtype:

str

xlsx2md.images_to_markdown(ws_formula, image_dir: str, sheet_name: str) → str
概要:

ワークシート内の画像データをファイルに保存し、Markdown文字列を生成します。

引数:
param ws_formula:

対象のワークシート。

param image_dir:

画像を保存するディレクトリ。

type image_dir:

str

param sheet_name:

ワークシート名。

type sheet_name:

str

戻り値:
returns:

画像情報のMarkdown文字列。

rtype:

str

xlsx2md.initialize()
概要:

コマンドライン引数を解析し、初期設定を行います。

戻り値:
returns:

解析された引数を格納した名前空間オブジェクト。

rtype:

argparse.Namespace

xlsx2md.iter_formula_cells(ws_formula, ws_values, bounds)
概要:

ワークシート内の数式セルを順番に取得します。

引数:
param ws_formula:

数式を含むワークシート。

param ws_values:

値を含むワークシート。

param bounds:

使用範囲を示すタプル。

戻り値:
returns:

数式セルと値セルのタプルを生成するイテレータ。

xlsx2md.limited_indices(start: int, end: int, max_count: int, output_all: bool)
概要:

指定された範囲のインデックスリストと、上限により切り詰められたかを示すフラグを返します。

引数:
param start:

開始インデックス。

type start:

int

param end:

終了インデックス。

type end:

int

param max_count:

出力する最大数。

type max_count:

int

param output_all:

全て出力するかどうかのフラグ。

type output_all:

bool

戻り値:
returns:

インデックスのリストと、切り詰められたかどうかの真偽値のタプル。

xlsx2md.main()
概要:

スクリプトのメイン処理を実行します。

xlsx2md.markdown_table(headers: Iterable[str], rows: Iterable[Iterable[Any]]) → str
概要:

ヘッダーと行データからMarkdown形式の表を作成します。

引数:
param headers:

表のヘッダー文字列のイテラブル。

type headers:

Iterable[str]

param rows:

表の行データのイテラブル。

type rows:

Iterable[Iterable[Any]]

戻り値:
returns:

Markdown形式のテーブル文字列。

rtype:

str

xlsx2md.md_escape(value: Any) → str
概要:

Markdownのテーブルセル用に最低限のエスケープ処理を行います。

引数:
param value:

エスケープ対象の値。

type value:

Any

戻り値:
returns:

エスケープされた文字列。

rtype:

str

xlsx2md.merged_cells_to_markdown(ws_formula) → str
概要:

結合セル情報を抽出し、Markdownテーブルを生成します。

引数:
param ws_formula:

対象のワークシート。

戻り値:
returns:

結合セル情報のMarkdown文字列。

rtype:

str

xlsx2md.object_text(obj: Any) → str
概要:

openpyxlのTitleやRichText風オブジェクトから読めるテキストを可能な範囲で取り出します。

引数:
param obj:

テキスト抽出対象のオブジェクト。

type obj:

Any

戻り値:
returns:

抽出された文字列。

rtype:

str

xlsx2md.safe_filename(name: str) → str
概要:

ファイル名として安全な文字列に変換します。

引数:
param name:

変換対象のファイル名。

type name:

str

戻り値:
returns:

記号をアンダースコアに置換した安全なファイル名。

rtype:

str

xlsx2md.sheet_overview_to_markdown(ws_formula, bounds) → str
概要:

シートの概要情報を抽出し、Markdownテーブルを生成します。

引数:
param ws_formula:

対象のワークシート。

param bounds:

使用範囲を示すタプル。

戻り値:
returns:

シート概要のMarkdown文字列。

rtype:

str

xlsx2md.tables_to_markdown(ws_formula) → str
概要:

Excelテーブル情報を抽出し、Markdownテーブルを生成します。

引数:
param ws_formula:

対象のワークシート。

戻り値:
returns:

テーブル情報のMarkdown文字列。

rtype:

str

xlsx2md.terminate()
概要:

プログラムを終了します。

詳細説明:

グローバル変数のpauseが真の場合、終了前にユーザーのエンターキー入力を待機します。

xlsx2md.values_table_to_markdown(ws_formula, ws_values, bounds, args) → str
概要:

ワークシートの値範囲からMarkdown形式のテーブルを生成します。

引数:
param ws_formula:

数式を含むワークシート。

param ws_values:

値を含むワークシート。

param bounds:

使用範囲を示すタプル。

param args:

コマンドライン引数を格納したオブジェクト。

戻り値:
returns:

値のMarkdownテーブル文字列。

rtype:

str