pub struct ConverterBuilder { /* private fields */ }Expand description
Fluent Builder APIを提供する構造体
Converterインスタンスを段階的に構築するためのビルダーです。
すべての設定項目にデフォルト値が設定されており、必要な設定のみをオーバーライドできます。
§使用例
use xlsxzero::{ConverterBuilder, SheetSelector, MergeStrategy};
let converter = ConverterBuilder::new()
.with_sheet_selector(SheetSelector::Index(0))
.with_merge_strategy(MergeStrategy::HtmlFallback)
.build()?;Implementations§
Source§impl ConverterBuilder
impl ConverterBuilder
Sourcepub fn with_sheet_selector(self, selector: SheetSelector) -> Self
pub fn with_sheet_selector(self, selector: SheetSelector) -> Self
変換対象のシートを選択する
§引数
selector: SheetSelector: シート選択方式
§使用例
use xlsxzero::{ConverterBuilder, SheetSelector};
// 単一シートをインデックスで指定
let builder = ConverterBuilder::new()
.with_sheet_selector(SheetSelector::Index(0));
// 単一シートを名前で指定
let builder = ConverterBuilder::new()
.with_sheet_selector(SheetSelector::Name("Sheet1".to_string()));
// 複数シートを指定
let builder = ConverterBuilder::new()
.with_sheet_selector(SheetSelector::Indices(vec![0, 2, 4]));Sourcepub fn with_merge_strategy(self, strategy: MergeStrategy) -> Self
pub fn with_merge_strategy(self, strategy: MergeStrategy) -> Self
Sourcepub fn with_date_format(self, format: DateFormat) -> Self
pub fn with_date_format(self, format: DateFormat) -> Self
日付の出力形式を指定する
§引数
format: DateFormat: 日付形式
§使用例
use xlsxzero::{ConverterBuilder, DateFormat};
// ISO 8601形式(デフォルト)
let builder = ConverterBuilder::new()
.with_date_format(DateFormat::Iso8601);
// カスタム形式
let builder = ConverterBuilder::new()
.with_date_format(DateFormat::Custom("%Y年%m月%d日".to_string()));Sourcepub fn with_formula_mode(self, mode: FormulaMode) -> Self
pub fn with_formula_mode(self, mode: FormulaMode) -> Self
非表示要素(非表示シート、行、列)を出力に含めるかを指定する
§引数
include: bool:true: 非表示要素を含めるfalse: 非表示要素をスキップ(デフォルト)
§Phase I制限事項
Phase Iでは calamine ライブラリの制限により、非表示行・非表示列の情報を取得できません。
そのため、include_hidden(false) を指定しても非表示行・列のフィルタリングは機能しません。
非表示シートのみがフィルタリング対象となります。
Phase IIで xl/worksheets/sheet*.xml から hidden="1" 属性を直接パースすることで完全対応予定です。
§使用例
use xlsxzero::ConverterBuilder;
let builder = ConverterBuilder::new()
.include_hidden(true);Sourcepub fn with_range(self, start: (u32, u32), end: (u32, u32)) -> Self
pub fn with_range(self, start: (u32, u32), end: (u32, u32)) -> Self
処理対象のセル範囲を制限する
範囲外のセルは無視されます。
§引数
start: (u32, u32): 開始セル座標 (row, col)(0始まり)end: (u32, u32): 終了セル座標 (row, col)(0始まり)
§制約
start.0 <= end.0かつstart.1 <= end.1でなければならない- 制約違反の場合、
build()時にXlsxToMdError::Configを返す
§使用例
use xlsxzero::ConverterBuilder;
// A1:C10の範囲を処理(0始まりなので、row 0-9, col 0-2)
let builder = ConverterBuilder::new()
.with_range((0, 0), (9, 2));Sourcepub fn with_output_format(self, format: OutputFormat) -> Self
pub fn with_output_format(self, format: OutputFormat) -> Self
出力フォーマットを指定する
§引数
format: OutputFormat: 出力フォーマット(Markdown, HTML, JSON, CSV)
§使用例
use xlsxzero::{ConverterBuilder, OutputFormat};
// JSON形式で出力
let builder = ConverterBuilder::new()
.with_output_format(OutputFormat::Json);
// CSV形式で出力
let builder = ConverterBuilder::new()
.with_output_format(OutputFormat::Csv);Sourcepub fn build(self) -> Result<Converter, XlsxToMdError>
pub fn build(self) -> Result<Converter, XlsxToMdError>
設定を検証し、Converterインスタンスを生成する
§戻り値
Ok(Converter): 設定が有効な場合、ConverterインスタンスErr(XlsxToMdError::Config): 設定が無効な場合(例: 範囲指定の開始 > 終了)
§発生し得るエラー
XlsxToMdError::Config(String): 設定の検証に失敗した場合- 範囲指定の開始座標が終了座標より大きい
- カスタム日付形式が不正な書式文字列
§使用例
use xlsxzero::{ConverterBuilder, SheetSelector};
let converter = ConverterBuilder::new()
.with_sheet_selector(SheetSelector::Index(0))
.build()?;Trait Implementations§
Source§impl Debug for ConverterBuilder
impl Debug for ConverterBuilder
Auto Trait Implementations§
impl Freeze for ConverterBuilder
impl RefUnwindSafe for ConverterBuilder
impl Send for ConverterBuilder
impl Sync for ConverterBuilder
impl Unpin for ConverterBuilder
impl UnwindSafe for ConverterBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more