(57)【要約】【課題】同一列の各セルのデータ量が異なる場合に空白部分を減らした表レイアウトを生成することは難しい、という問題を解決すること。【解決手段】同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を算出する列幅算出部と、列幅算出部により算出された列幅の各セルについて、当該各セルに配置されるデータ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定する行高決定部と、列幅算出部により算出される列幅と、行高決定部により決定される各行ごとの行の高さと、各セルのデータ内容と、に従って表レイアウトを生成する表レイアウト生成部と、を備える。【選択図】図１
2015170011.tif 000002
【特許請求の範囲】
【請求項１】
同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を算出する列幅算出部と、
前記列幅算出部により算出された列幅の各セルについて、当該各セルに配置される前記データ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定する行高決定部と、
前記列幅算出部により算出される列幅と、前記行高決定部により決定される各行ごとの行の高さと、前記各セルのデータ内容と、に従って表レイアウトを生成する表レイアウト生成部と、
を備える表レイアウト生成装置。
【請求項２】
請求項１に記載の表レイアウト生成装置であって、
前記表レイアウト全体の横幅を示す横幅情報を記憶する表レイアウト記憶部を備え、
前記列幅算出部は、前記表レイアウト記憶部が記憶する前記横幅情報が示す横幅を同一の行に位置する各セルのデータ量に応じてセルごとに分配することで、前記各セルの列幅を算出する、
表レイアウト生成装置。
【請求項３】
請求項２に記載の表レイアウト生成装置であって、
前記列幅算出部は、同一の行に位置する各セルのデータ量から各セルそれぞれのデータ量が同一の行に位置するセル全体のデータ量に占める割合を算出し、当該算出した割合に応じて前記横幅情報が示す横幅をセルごとに分配する、
表レイアウト生成装置。
【請求項４】
請求項１乃至３の何れかに記載の表レイアウト生成装置であって、
前記表レイアウト生成部は、当該表レイアウト生成部により生成された前記表レイアウトを構成する各セルを、生成前の列番号に位置するセルとして扱うよう構成された、
表レイアウト生成装置。
【請求項５】
請求項４に記載の表レイアウト生成装置であって、
入力された操作に応じて所定の処理を行う表操作制御部を備え、
前記表操作制御部は、前記表レイアウト生成部が生成した前記表レイアウトを構成する各セルを前記生成前の列番号に位置するセルとして前記操作に応じた所定の処理を行う、
表レイアウト生成装置。
【請求項６】
請求項１乃至５の何れかに記載の表レイアウト生成装置であって、
前記データ内容を記憶するセル情報記憶部を備え、
前記表レイアウト生成部は、前記列幅変更部により変更される列幅と、前記行高決定部により決定される各行ごとの行高と、前記セル情報記憶部が記憶するデータ内容と、に基づいて前記表レイアウトを生成する、
表レイアウト生成装置。
【請求項７】
同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を変更し、
前記各セルに配置される前記データ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定し、
前記列幅と、前記各行ごとの行高と、前記各セルのデータ内容と、に従って表レイアウトを生成する、
表レイアウト生成方法。
【請求項８】
請求項７に記載の表レイアウト生成方法であって、表レイアウト全体の横幅を同一の行に位置する各セルのデータ量に応じて分配することで、前記各セルの列幅を変更する、
表レイアウト生成方法。
【請求項９】
表レイアウト生成装置に、
同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を算出する列幅算出部と、
前記列幅算出部により算出された列幅の各セルについて、当該各セルに配置される前記データ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定する行高決定部と、
前記列幅算出部により算出される列幅と、前記行高決定部により決定される各行ごとの行高と、前記各セルのデータ内容と、に従って表レイアウトを生成する表レイアウト生成部と、
を実現させるためのプログラム。
【請求項１０】
同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を算出する列幅算出部と、
前記列幅算出部により算出された列幅の各セルについて、当該各セルに配置される前記データ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定する行高決定部と、
前記列幅算出部により算出される列幅と、前記行高決定部により決定される各行ごとの行高と、前記各セルのデータ内容と、に従って表レイアウトを生成する表レイアウト生成部と、
を備える制御装置と、
前記表レイアウト全体の横幅を示す横幅情報を記憶する表レイアウト記憶部を備える記憶装置と、を備え、
前記列幅算出部は、前記表レイアウト記憶部が記憶する前記横幅情報が示す横幅を同一の行に位置する各セルのデータ量に応じてセルごとに分配することで、前記各セルの列幅を算出する、
表レイアウト生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表レイアウト生成装置、表レイアウト生成方法、プログラム、表レイアウト生成システムに関する。
【背景技術】
【０００２】
行と列とで構成される表の一つとしてスプレッドシードが知られている。スプレッドシードは表計算ソフトなどで用いられる表であり、縦横に並んだマス目であるセルに文字や数値などを打ち込むことで所定の計算処理などを行うことが出来るように構成されている。
【０００３】
このようなスプレッドシートを生成する技術として、特許文献１が知られている。特許文献１には、フォーマット定義情報とオーバレイ定義情報とを含む帳票からスプレッドシートを作成する技術が記載されている。特許文献１によると、フォーマット定義情報の項目群の距離に基づいて算出されるフォーマット・セル定義情報と、オーバレイ定義情報のオーバレイ（枠、罫線）の座標値の距離に基づいて算出されるオーバレイ・セル定義情報と、に応じて列幅、行幅が算出される。そして、算出した列幅、行幅を設定し、項目又はオーバレイに対応するセルを特定したスプレッドシートを生成する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１４０１２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１により生成されるスプレッドシートでは、全ての行で列幅の割合は同一となっている。これは、一般的なスプレッドシートでも同様である。このように、スプレッドシートを構成する全ての行で列幅の割合が同一である場合、同一列で行が異なる毎にデータ量が大きく異なると、空白部分（デッドスペース）が多くなってしまうことになる。その結果、スプレッドシートの表示面積が大きくなってしまう、あるいは、特定の表示面積に収めるために文字サイズを縮小する必要がある、などという問題が生じていた。
【０００６】
この問題を回避するためには、例えば、実際に必要な分より多くの列を用意し、データ量の多いセルに複数の列を結合して利用する、という方法が考えられる。また、例えば、表計算以外の文書作成ソフトウェア（Ｗｏｒｄ、ＰｏｗｅｒＰｏｉｎｔなど）を利用し、罫線を手動で描画する、という方法が考えられる。
【０００７】
しかしながら、上記方法では、レイアウトの生成を手作業で行うため時間がかかるという問題が生じることになる。また、上記方法で生成した表は、複数の列を結合したセルと、単独のセルをそのまま使用したセルと、を跨ってソートすることが出来ない（スプレッドシートプログラムとしての操作性が維持できない）という問題も生じていた。
【０００８】
このように、同一列の各セルのデータ量が異なる場合に空白部分を減らした表レイアウトを生成することは難しい、という問題が生じていた。
【０００９】
そこで、本発明の目的は、同一列の各セルのデータ量が異なる場合に空白部分を減らした表レイアウトを生成することは難しい、という問題を解決する情報処理システムを提供することにある。
【課題を解決するための手段】
【００１０】
かかる目的を達成するため本発明の一形態である表レイアウト生成装置は、
同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を算出する列幅算出部と、
前記列幅算出部により算出された列幅の各セルについて、当該各セルに配置される前記データ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定する行高決定部と、
前記列幅算出部により算出される列幅と、前記行高決定部により決定される各行ごとの行高と、前記各セルのデータ内容と、に従って表レイアウトを生成する表レイアウト生成部と、
を備える、
という構成を採る。
【００１１】
また、本発明の他の形態である表レイアウト生成方法は、
同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を変更し、
前記各セルに配置される前記データ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定し、
前記列幅と、前記各行ごとの行高と、前記各セルのデータ内容と、に従って表レイアウトを生成する、
という構成を採る。
【００１２】
また、本発明の他の形態であるプログラムは、
表レイアウト生成装置に、
同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を算出する列幅算出部と、
前記列幅算出部により算出された列幅の各セルについて、当該各セルに配置される前記データ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定する行高決定部と、
前記列幅算出部により算出される列幅と、前記行高決定部により決定される各行ごとの行高と、前記各セルのデータ内容と、に従って表レイアウトを生成する表レイアウト生成部と、
を実現させるためのプログラムである。
【００１３】
また、本発明の他の形態である表レイアウト生成システムは、
同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を算出する列幅算出部と、
前記列幅算出部により算出された列幅の各セルについて、当該各セルに配置される前記データ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定する行高決定部と、
前記列幅算出部により算出される列幅と、前記行高決定部により決定される各行ごとの行高と、前記各セルのデータ内容と、に従って表レイアウトを生成する表レイアウト生成部と、
を備える制御装置と、
前記表レイアウト全体の横幅を示す横幅情報を記憶する表レイアウト記憶部を備える記憶装置と、を備え、
前記列幅算出部は、前記表レイアウト記憶部が記憶する前記横幅情報が示す横幅を同一の行に位置する各セルのデータ量に応じてセルごとに分配することで、前記各セルの列幅を算出する、
という構成を採る。
【発明の効果】
【００１４】
本発明は、以上のように構成されることにより、空白部分を減らした表レイアウトを生成する表レイアウト生成装置を提供することが出来る。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態に係るスプレッドシート生成システムの構成の一例を示すブロック図である。
【図２】図１で示すセル情報記憶部が記憶する内容を説明するための表である。
【図３】図１で示すセル情報記憶部が記憶する内容の一例を示す表である。
【図４】図１で示す表レイアウト記憶部が記憶可能な内容を説明するための表である。
【図５】図１で示す表レイアウト記憶部が記憶内容の一例を示す表である。
【図６】スプレッドシート生成システムが生成するスプレッドシートの一例を示す表である。
【図７】スプレッドシート生成システムが生成するスプレッドシートを説明するための図である。
【図８】本実施形態におけるスプレッドシート生成システムの動作の一例を示すフローチャートである。
【図９】本実施形態におけるスプレッドシート生成システムが各セルの横幅を決定する際の動作の一例を示すフローチャートである。
【図１０】本発明に関連するスプレッドシート生成システムがスプレッドシートを生成する際の動作を示すフローチャートである。
【図１１】本発明に関連するスプレッドシート生成システムが生成するスプレッドシートの一例を示す表である。
【図１２】本発明の第１の実施形態に係るスプレッドシート生成システムの構成の一例を示すブロック図である。
【図１３】本発明の第２の実施形態に係る表レイアウト生成装置の構成の一例を示す概略ブロック図である。
【図１４】本発明の第３の実施形態に係る表レイアウト生成システムの構成の一例を示す概略ブロック図である。
【発明を実施するための形態】
【００１６】
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第１の実施形態]
本発明の第１の実施形態に係るスプレッドシート生成システム１は、行と列とで構成され縦横に並んだマス目であるセルに文字や数値などを打ち込むことで所定の計算処理などを行うことが出来るスプレッドシート（表レイアウト）を生成するシステムである。本実施形態におけるスプレッドシート生成システム１は、後述するように、同一の行に位置する各セルのデータ量に応じて当該各セルの横幅（列幅）を算出する。そして、スプレッドシート生成システム１は、当該算出した横幅を反映させたスプレッドシートを生成する。
【００１７】
図１を参照すると、本実施形態におけるスプレッドシート生成システム１は、記憶装置２と、制御装置３と、入力部４と、表示部５と、を備えている。
【００１８】
記憶装置２と制御装置３とは、例えば有線で接続されており互いに通信可能なよう構成されている。同様に、制御装置３と入力部４、制御装置３と表示部５、も例えば有線で接続されており通信可能なよう構成されている。なお、各装置間の接続は有線による接続を行う場合に限られない。各装置間は、例えば、無線通信にて通信可能なように構成されていても構わない。
【００１９】
記憶装置２は、ハードディスクなどで構成されるストレージ装置である。図１で示すように、記憶装置２は、セル情報記憶部２１と、表レイアウト記憶部２２と、を有している。
【００２０】
セル情報記憶部２１は、スプレッドシートを構成する各セルのデータの内容を示すデータ内容を、スプレッドシートごとに記憶している。具体的には、図２で示すように、本実施形態におけるセル情報記憶部２１は、スプレッドシートを構成する行の番号を示す行番号と列の番号を示す列番号とに対応付けて、当該行番号及び列番号が示すセルに配置されるデータ内容を記憶している。そのため、セル情報記憶部２１は、スプレッドシートを構成する行の数（行番号の数）及び列の数（列番号の数）に応じた数のデータ内容を記憶していることになる。
【００２１】
なお、セル情報記憶部２１は、必ずしも全てのセルに対してデータ内容を記憶していなくても構わない。つまり、セル情報記憶部２１は、セルに対応するデータ内容を記憶していない場合があってもよい（データ内容がないセルがあってもよい）。また、セル情報記憶部２１が記憶する内容（データ内容）は、後述する入力部４を介して変更することが出来るように構成することが出来る。
【００２２】
ここで、セル情報記憶部２１が記憶するデータ内容の一例を、図３で示す。図３を参照すると、セル情報記憶部２１は、例えば、行番号１、列番号１のセルのデータ内容として文字「あ」を１０文字記憶している。また、行番号１、列番号２のセルのデータ内容として文字「い」を５０文字、行番号１、列番号３のセルのデータ内容として文字「う」を１００文字記憶している。同様に、セル情報記憶部２１は、行番号２、列番号１のセルのデータ内容として文字「い」を５０文字、行番号２、列番号２のセルのデータ内容として文字「う」を１００文字、行番号２、列番号３のセルのデータ内容として文字「あ」を１０文字記憶している。さらに、セル情報記憶部２１は、行番号３、列番号１のセルの内容として文字「う」を１００文字、行番号３、列番号２のセルの内容として文字「あ」を１０文字、行番号３、列番号３のセルの内容として文字「い」を５０文字記憶している。
【００２３】
上記の場合では、セル情報記憶部２１が記憶する各セルの文字数が当該各セルのデータ量を示していることになる。つまり、セル情報記憶部２１が記憶しているデータ内容の量（長さ）を示すデータ量は、１行１列のセル＝１０、１行２列のセル＝５０、１行３列のセル＝１００、となる。同様に、セル情報記憶部２１が記憶するデータ内容の量は、２行１列のセル＝５０、２行２列のセル＝１００、２行３列のセル＝１０、３行１列のセル＝１００、３行２列のセル＝１０、３行３列のセル＝５０、となる。
【００２４】
表レイアウト記憶部２２は、スプレッドシートのレイアウトに関する情報を記憶している。図４を参照すると、表レイアウト記憶部２２は、例えば、各行の高さ情報と、各列の横幅情報と、各セルの横幅情報と、表の横幅情報（横幅情報）と、をスプレッドシートごとに記憶することが出来る。なお、表レイアウト記憶部２２が記憶する上記情報も、入力部４を介して変更可能なよう構成することが出来る。
【００２５】
各行の高さ情報は、スプレッドシートを構成する各行の高さを示す情報である。図４で示すように、表レイアウト記憶部２２は、各行の高さ情報として例えば、行番号と当該行番号が示す（行番号が示す行と同一の行に位置する）セルの高さとを記憶する。
【００２６】
各列の横幅情報は、スプレッドシートを構成する各列の横幅を示す情報である。図４で示すように、表レイアウト記憶部２２は、各列の横幅情報として例えば、列番号と当該列番号が示す（列番号が示す列と同一の列に位置する）セルの横幅とを記憶する。なお、後述するように、表レイアウト記憶部２２は、各列の横幅情報を記憶していなくても構わない。
【００２７】
各セルの横幅情報は、スプレッドシートを構成する各セルの横幅を示す情報である。図４で示すように、表レイアウト記憶部２２は、各セルの横幅情報として例えば、行番号及び列番号と当該行番号及び列番号が示す（行番号が示す行と列番号が示す列との交差点に位置する）セルの横幅とを記憶する。つまり、表レイアウト記憶部２２は、各セルの横幅情報として、スプレッドシートを構成するセルごとの（全てのセルの）横幅を記憶していることになる。
【００２８】
表の横幅情報は、スプレッドシート全体の横幅を示す情報である。表の横幅情報は、例えば、スプレッドシート全体の横幅（一行）に文字が何文字入るかを示している。図４で示すように、表レイアウト記憶部２２は、表の横幅情報として例えば、一行に文字が何文字入るかを示す横幅情報を１つ記憶している。
【００２９】
表レイアウト記憶部２２は、このような各行の高さ情報と、各列の横幅情報と、各セルの横幅情報と、表の横幅情報と、を記憶することが出来る。
【００３０】
なお、上記表レイアウト記憶部２２が記憶する情報のうち、各列の横幅情報は、一般的なスプレッドシート生成方法にてスプレッドシートを生成する際に用いられる情報である。そのため、本実施形態における表レイアウト記憶部２２は、必ずしも各列の横幅情報を記憶していなくても構わない。また、各行の高さ情報は、一般的なスプレッドシート生成方法にてスプレッドシートを生成する際にも用いられる情報である。つまり、各行の高さ情報と各列の横幅情報とは、一般的なスプレッドシート生成方法でも用いられる情報になる。一方、各セルの横幅情報と表の横幅情報とは、本発明に特有の情報である。
【００３１】
また、各行の高さ情報及び各セルの横幅情報は、後述する制御装置３により算出されることになる情報である。従って、レイアウト記憶部２２は、上記各行の高さ情報及び各セルの横幅情報を記憶していないことも考えられる。また、上記のように、レイアウト記憶部２２は各列の横幅情報を記憶していなくても構わない。このように、レイアウト記憶部２２は、各行の高さ情報と各列の横幅情報と各セルの横幅情報とを記憶していないことも考えられる。つまり、表レイアウト記憶部２２は、少なくとも表の横幅情報を記憶していれば良い。
【００３２】
本実施形態においては、表レイアウト記憶部２２は例えば、図５で示すように、表の横幅情報として、スプレッドシート全体の横幅が４５文字であるという情報を記憶しているとする。
【００３３】
制御装置３は、情報処理装置である。制御装置３は、図示しない中央演算装置（ＣＰＵ）と、記憶装置（メモリ及びハードディスク）と、を備えている。制御装置３は、記憶装置が備えるプログラムをＣＰＵが実行することで、後述する機能を実現するように構成されている。
【００３４】
図１で示すように、制御装置３は、行の横幅配分手段３１（列幅算出部）と、行の高さ決定手段３２（行高決定部）と、表レイアウト生成手段３３（表レイアウト生成部）と、しての機能を有している。
【００３５】
行の横幅配分手段３１は、同一の行に位置する各セルのデータ量に応じて、当該各セルの横幅（列幅）を算出する機能を有している。具体的には、本実施形態における行の横幅配分手段３１は、まず、１行分のデータ内容（同一の行に位置する各セルのデータ内容）をセル情報記憶部２１から取得する。若しくは、行の横幅配分手段３１は、１行分のデータ内容を、表レイアウト生成手段３３を介して取得する。また、行の横幅配分手段３１は、表の横幅情報を表レイアウト記憶部２２から取得する。続いて、行の横幅配分手段３１は、上記取得した各セルのデータ内容に応じたデータ量から各セルそれぞれのデータ量が同一の行に位置するセル全体のデータ量に占める割合を算出する。そして、行の横幅配分手段３１は、当該算出した割合に応じて前記横幅情報が示す横幅をセルごとに配分（分配）する（小数点未満は例えば四捨五入する）。例えばこのようにして、行の横幅配分手段３１は同一の行に位置する各セルの横幅を算出する。行の横幅配分手段３１は、上記処理を繰り返すことで、スプレッドシートを構成する全てのセルの横幅を算出することになる。なお、行の横幅配分手段３１は、上記横幅を配分する際には、各セルの横幅が最低でも１文字以上になるようにする。つまり、行の横幅配分手段３１は、セルのデータ量が０の場合でも、行の列数が減らないように、最小限の横幅を確保することになる。
【００３６】
以下、行の横幅配分手段３１による各セルの横幅の算出の一例について、具体例を挙げて説明する。例えば、本実施形態においては、上述したように、セル情報記憶部２１は、１行目のデータ内容として、文字「あ」を１０文字（１列目）と、文字「い」を５０文字（２列目）と、文字「う」を１００文字（３列目）と、を記憶している。また、表レイアウト記憶部２２は、上述したように、表の横幅情報として「表全体の横幅＝４５文字」という情報を記憶している。
【００３７】
そこで、行の横幅配分手段３１は、まず、セル情報記憶部２１及び表レイアウト記憶部２２から上記情報を取得する。続いて、行の横幅配分手段３１は、以下の式に従い各セルのデータ量が同一の行に位置するセル全体のデータ量に占める割合を算出する。
・ｘ行ｙ列のセルのデータ量の割合＝（当該セルのデータ量）／（同一行全体のデータ量）
つまり、
・１行１列のセルのデータ量の割合＝１０／（１０＋５０＋１００）
・１行２列のセルのデータ量の割合＝５０／（１０＋５０＋１００）
・１行３列のセルのデータ量の割合＝１００／（１０＋５０＋１００）
【００３８】
次に、行の横幅配分手段３１は、上記算出した割合に応じて、表の横幅＝４５文字を各セルに配分する。つまり、行の横幅配分手段３１は、以下の式に従い各列の横幅を算出する。なお、行の横幅配分手段３１は、本実施形態においては、小数点未満を四捨五入して各列の横幅を決定するとする。
・ｘ行ｙ列の横幅＝（表の横幅）×（ｘ行ｙ列のセルのデータ量の割合）
つまり、
・１行１列の横幅＝４５×（１０／（１０＋５０＋１００））
・１行２列の横幅＝４５×（５０／（１０＋５０＋１００））
・１行３列の横幅＝４５×（１００／（１０＋５０＋１００））
【００３９】
上記式の結果、行の横幅配分手段３１は、以下のように横幅を算出することになる。
・１行１列の横幅＝３文字
・１行２列の横幅＝１４文字
・１行３列の横幅＝２８文字
【００４０】
また、行の横幅配分手段３１は、同様の計算を行うことで、以下のように２行目と３行目の横幅を算出する。
・２行１列の横幅＝１４文字
・２行２列の横幅＝２８文字
・２行３列の横幅＝３文字
・３行１列の横幅＝２８文字
・３行２列の横幅＝３文字
・３行３列の横幅＝１４文字
【００４１】
このようにして、行の横幅配分手段３１は、各行、各列のセルの横幅を算出する。後述するように、行の横幅配分手段３１による算出結果は、例えば、行の高さ決定手段３２と表レイアウト生成手段３３とで利用されることになる。
【００４２】
行の高さ決定手段３２は、各行ごとの行の高さ（行高）を決定する機能を有している。行の高さ決定手段３２は、行の横幅配分手段３１による算出結果を受けて、各行ごとの行の高さを決定する。
【００４３】
具体的には、本実施形態における行の高さ決定手段３２は、まず、行の横幅配分手段３１による算出結果（各セルの横幅）を取得する。また、行の高さ決定手段３２は、行の横幅配分手段３１又はセル情報記憶部２１から、同一行の各セルのデータ内容（データ量でも構わない）を取得する。続いて、行の高さ決定手段３２は、取得した算出結果（各セルに配分される横幅）と、各セルのデータ内容に応じたデータ量と、に基づいて、各セルに必要となる行の高さをそれぞれ算出する。そして、行の高さ決定手段３２は、当該算出した各セルの行の高さのうち高さが最大となる行の高さを、当該各セルが属する行の高さであるとして決定する。つまり、行の高さ決定手段３２は、同一の行に属するセルの行の高さ全てを、算出した各セルに必要となる行の高さのうち最大となる行の高さに決定する。このように、行の高さ決定手段３２は、同一の行に属する全てのセルの高さを同じ高さに決定する。なお、行の高さ決定手段３２は、行の高さを最低でも１文字以上に決定する。つまり、行の高さ決定手段３２は、同一行に属する各セルのデータ量が全て０である場合にも、表の行数が減らないように最小限の高さを確保することになる。
【００４４】
例えば、本実施形態においては、上述したように、行の横幅配分手段３１は、１行１列の横幅として３文字を、１行２列の横幅として１４文字を、１行３列の横幅として２８文字を、それぞれ算出する。そこで、行の高さ決定手段３２は、上記算出結果を取得する。また、行の高さ決定手段３２は、１行１列のデータ量として１０文字を、１行２列のデータ量として５０文字を、１行３列のデータ量として１００文字を、それぞれ取得する。
【００４５】
続いて、行の高さ決定手段３２は、各セルにおいて必要となる行の高さを算出する。つまり、行の高さ決定手段３２は、以下の式に従い各セルに必要となる行の高さを算出する。なお、行の高さ決定手段３２は、本実施形態においては、小数点未満を切り上げて各セルに必要となる行の高さを算出する。
・ｘ行ｙ列のセルに必要な行の高さ＝（当該セルのデータ量）／（当該セルの横幅）
つまり、
・１行１列のセルに必要な行の高さ＝１０／３
・１行２列のセルに必要な行の高さ＝５０／１４
・１行３列のセルに必要な行の高さ＝１００／２８
【００４６】
上記式の結果、行の高さ決定手段３２は、１行１列のセルに必要な行の高さとして４を算出する。同様に、行の高さ決定手段３２は、１行２列のセルに必要な行の高さとして４を算出する。また、行の高さ決定手段３２は、１行３列のセルに必要な行の高さとして４を算出する。
【００４７】
続いて、行の高さ決定手段３２は、算出した各セルの行の高さのうち高さが最大となる行の高さを、当該各セルが属する行の高さであるとして決定する。上記のように、一例として説明した場合においては、同じ行に位置する各セルに必要な高さは全て４である。そのため、行の高さ決定手段３２は、当該各セルが属する行（１行目）の各セルの行の高さを４として決定する。
【００４８】
また、行の高さ決定手段３２は、同様の計算を行うことで、２行目と３行目の行の高さを決定する。つまり、行の高さ決定手段３２は、２行１列のセルに必要な行の高さとして４を、２行２列のセルに必要な行の高さとして４を、３行３列のセルに必要な行の高さとして４を、それぞれ算出する。そして、行の高さ決定手段３２は、２行目に位置するセルの高さとして４を決定する。また、行の高さ決定手段３２は、３行１列のセルに必要な行の高さとして４を、３行２列のセルに必要な行の高さとして４を、３行３列のセルに必要な行の高さとして４を、それぞれ算出する。そして、行の高さ決定手段３２は、３行目に位置するセルの高さとして４を決定する。
【００４９】
このように、行の高さ決定手段３２は、各行の高さを決定する。後述するように、行の高さ決定手段３２が決定した行の高さは、表レイアウト生成手段３３で利用されることになる。
【００５０】
表レイアウト生成手段３３は、スプレッドシートを生成して出力する機能を有している。具体的には、表レイアウト生成手段３３は、まず、行の横幅配分手段３１から算出結果（各セルの横幅）を取得する。また、表レイアウト生成手段３３は、行の高さ決定手段３２が決定した行ごとの行の高さを取得する。さらに、表レイアウト生成手段３３は、例えばセル情報記憶部２１から、各セルのデータ内容を取得する。そして、表レイアウト生成手段３３は、取得した各セルの横幅（列幅）と、各行ごとの行の高さ（行高）と、各セルのデータ内容と、に従ってスプレッドシート（表レイアウト）を生成する。その後、表レイアウト生成手段３３は、生成したスプレッドシートを後述する表示部５に出力する。
【００５１】
なお、表レイアウト生成手段３３は、スプレッドシートを生成する際に制御装置３全体の制御を行う機能を有していても構わない。表レイアウト生成手段３３がこのような機能を有する場合、行の横幅配分手段３１及び行の高さ決定手段３２は、表レイアウト生成手段３３の制御の下で横幅の算出や行高の決定等の動作を行うことになる。
【００５２】
例えば、表レイアウト生成手段３３は、行の横幅配分手段３１から、１行１列の横幅である３、１行２列の横幅である１４、１行３列の横幅である２８、をそれぞれ取得する。同様に、表レイアウト生成手段３３は、行の横幅配分手段３１から、２行目及び３行目の各セルの横幅を取得する。
【００５３】
また、表レイアウト生成手段３３は、行の高さ決定手段３２から、１行目に位置するセルの行の高さである４を取得する。同様に、表レイアウト生成手段３３は、行の高さ決定手段３２から、２行目及び３行目に位置するセルの行の高さを取得する。
【００５４】
また、表レイアウト生成手段３３は、例えばセル情報記憶部２１から各セルのデータ内容を取得する。
【００５５】
そして、表レイアウト生成手段３３は、行の横幅配分手段３１が算出した横幅及び行の高さ決定手段３２が決定した行の高さを備える各セルに当該各セルに対応するデータ内容を配置してスプレッドシートを生成する。
【００５６】
表レイアウト生成手段３３は、例えば図６で示すようなスプレッドシートを生成する。図６で示すように、本実施形態における表レイアウト生成手段３３は、空白部分を減らしたスプレッドシートを生成することになる。つまり、行の横幅配分手段３１が同一行の各セルのデータ量に応じた横幅を算出することで、表レイアウト生成手段３３は、同じ面積でより多くの情報を記載可能な柔軟な構成の（データ量に応じて同一行の各セルの横幅が変動する）スプレッドシートを生成することになる。
【００５７】
なお、表レイアウト生成部３３は、当該表レイアウト生成部３３により生成されたスプレッドシートを構成する各セルを、生成前の列番号に位置するセルとして扱うよう構成されている。つまり、表レイアウト生成部３３が生成するスプレッドシートは、物理的な配置に依存せず同一の列に位置するセルを対応付けて扱うことが出来るよう構成される。
【００５８】
例えば、表レイアウト生成部３３が生成したスプレッドシート内において、セルを選択するカーソルを上下移動させる場合を考える。図７を参照すると、物理的な配置では、Ｃｅｌｌ（３，２）の下にＣｅｌｌ（４，３）が位置していることになる。そのため、Ｃｅｌｌ（３，２）を示すカーソルを下に一つ移動させると、カーソルはＣｅｌｌ（４，３）に移動するとも考えられる。しかしながら、本実施形態における表レイアウト生成部３３は、物理的な配置に依存せず同一の列に位置するセルを対応付けて扱うことが出来るようにスプレッドシートを生成する。そのため、Ｃｅｌｌ（３，２）を示すカーソルを下に一つ移動させると、同一列である列２に位置し行３の一つ下の行である行４に位置するＣｅｌｌ（４，２）にカーソルが移動することになる。
【００５９】
このように、表レイアウト生成部３３は、セルを選択するカーソルを上下移動する際に同一列をトレースすることが可能なスプレッドシートを生成する。また、表レイアウト生成部３３が生成するスプレッドシートは、カーソルを左右に移動させると、同一行をトレースするように移動する。つまり、表レイアウト生成部３３は、下記のような挙動をすることが可能なスプレッドシートを生成する。
・カーソルの上下移動：同一列をトレースする移動
上への移動：Ｃｅｌｌ（ｉ，ｊ）⇒Ｃｅｌｌ（ｉ−１，ｊ）
下への移動：Ｃｅｌｌ（ｉ，ｊ）⇒Ｃｅｌｌ（ｉ＋１，ｊ）
・カーソルの左右移動：同一行をトレースする移動
左への移動：Ｃｅｌｌ（ｉ，ｊ）⇒Ｃｅｌｌ（ｉ，ｊ−１）
右への移動：Ｃｅｌｌ（ｉ，ｊ）⇒Ｃｅｌｌ（ｉ，Ｊ＋１）
【００６０】
また、上記のように、表レイアウト生成部３３が生成するスプレッドシートは、物理的な配置に依存せず同一の列に位置するセルを対応付けて扱うことが出来るよう構成される。そのため、列を指定したソート処理（昇順、降順など）やフィルタ処理を行う際には、各行の同一列の集合に対して実施することになる。つまり、各行、列の物理的な配置に依存せずソート処理やフィルタ処理などを行うことが出来るように、表レイアウト生成部３３はスプレッドシートを生成していることになる。
【００６１】
入力部４は、キーボードやタッチパネルなどの入力装置である。入力部４は、セル情報記憶部２１が記憶するデータ内容や表レイアウト記憶部が記憶する各種情報を修正する際などに利用されることになる。
【００６２】
表示部５は、ディスプレイなどの出力装置である。表示部５には、表レイアウト生成部３３が生成したスプレッドシートが表示されることになる。
【００６３】
以上が、スプレッドシート生成システム１の構成である。次に、スプレッドシート生成システム１の動作の一例について説明する。
【００６４】
図８を参照すると、まず行の横幅配分手段３１（又は、表レイアウト生成手段３３）が１行分のデータ内容をセル情報記憶部２１から取得する（Ｓ１０１）。
【００６５】
次に、行の横幅配分手段３１が、上記取得した各セルのデータ量に応じて当該各セルの横幅（列幅）を算出する（Ｓ１０２）。なお、各セルの横幅を算出する際の動作の詳細については後述する。
【００６６】
続いて、行の高さ決定手段３２が、行の横幅配分手段３１による算出結果を受けて、各行ごとの行の高さを決定する（Ｓ１０３）。
【００６７】
例えば、行の高さ決定手段３２は、行の横幅配分手段３１による算出結果を取得する。また、行の高さ決定手段３２は、行の横幅配分手段３１又はセル情報記憶部２１から、同一行の各セルのデータ内容（データ内容に応じたデータ量）を取得する。続いて、行の高さ決定手段３２は、取得した算出結果（各セルに配分される横幅）と、各セルのデータ量と、に基づいて、各セルに必要となる行の高さをそれぞれ算出する。そして、行の高さ決定手段３２は、当該算出した同一行の各セルの行の高さのうち高さが最大となる行の高さを、当該各セルが属する行の高さであるとして決定する。
【００６８】
上記行の横幅配分手段３１による横幅の算出及び行の高さ決定手段３２による行の高さの決定は、スプレッドシートに含まれるすべての行について実施されることになる。つまり、生成するスプレッドシートに含まれる全ての行についてまだ上記処理を行っていない場合（残りの行がある場合）は、再度１行分のデータ内容を取得して各セルの横幅の算出及び行の高さの算出を行う（Ｓ１０４、ＹＥＳ）。一方、生成するスプレッドシートに含まれる全ての行について上記処理を行った場合（残りの行がない場合）は（Ｓ１０４、ＮＯ）、表レイアウト生成手段３３は、スプレッドシートを例えば表示部５に出力する（Ｓ１０５）。
【００６９】
なお、表レイアウト生成手段３３が生成するスプレッドシートは、物理的な配置に依存せず同一の列に位置するセルを対応付けて扱うことが出来るよう構成されることになる。
【００７０】
また、表レイアウト生成手段３３は、例えばスプレッドシートを生成した段階で、各セルの横幅情報や各行の高さ情報を表レイアウト記憶部２２に記憶することが出来る。各セルの横幅情報や各行の高さ情報は、行の横幅配分手段３１や行の高さ決定手段３２が横幅の算出や行の高さの決定を行ったタイミングで表レイアウト記憶部２２に記憶するように構成しても構わない。
【００７１】
以上が、スプレッドシート生成システム１の動作の一例である。次に、セルの横幅を算出する際の動作の一例について説明する。
【００７２】
図９を参照すると、行の横幅配分手段３１は、まず、１行分のデータ内容をセル情報記憶部２１から取得する（Ｓ２０１）。また、行の横幅配分手段３１は、表の横幅情報を表レイアウト記憶部２２から取得する（Ｓ２０２）。
【００７３】
続いて、行の横幅配分手段３１は、取得した各セルのデータ量から各セルそれぞれのデータ量が同一の行に位置するセル全体のデータ量に占める割合を算出する（Ｓ２０３）。そして、行の横幅配分手段３１は、当該算出した割合に応じて前記横幅情報が示す横幅をセルごとに配分する（Ｓ２０４）。
【００７４】
なお、行の横幅配分手段３１は、上記横幅を配分する際には、各セルの横幅が最低でも１文字以上になるようにする。つまり、行の横幅配分手段３１は、セルのデータ量が０の場合でも、行の列数が減らないように、最小限の横幅を確保することになる。
【００７５】
以上が、セルの横幅を算出する際の動作の一例である。
【００７６】
このように、本実施形態におけるスプレッドシート生成システム１は、行の横幅配分手段３１を備えている。また、表レイアウト記憶部２２が表の横幅情報を記憶している。このような構成により、行の横幅配分手段３１は、同一行に位置する各セルのデータ量に応じて、横幅を配分することが出来る。つまり、データ量の多いセルは広い横幅を有する一方で、データ量の少ないセルの横幅は相応のものとなる。その結果、各セルにデータ内容を配置した際に空白部分を減らすことが出来るようになる。また、同じ面積でより多くの情報を記載可能なスプレッドシートを生成することが出来るようになる。さらに、このようにスプレッドシートを生成することで、例えば、スプレッドシートを印刷する際に必要となる印刷ページを減らすことが出来る。また、例えば文字サイズの縮小を行わずに印刷などを行うことが可能となる。
【００７７】
また、本実施形態における表レイアウト生成手段３３は、スプレッドシートを構成する各セルを、行の横幅配分手段３１による算出前の元の列番号に位置するセルとして扱うことが出来るように、スプレッドシートを生成する。つまり、表レイアウト生成手段３３は、物理的な配置に依存せず同一の列に位置するセルを対応付けて扱うことが出来るようスプレッドシートを生成する。このような構成により、例えば、同一列の各セルの横幅が異なっていたとしても、物理的な配置に依存しないで列ごとにソートやフィルタなどの操作を行うことが出来るようになる。また、例えば、カーソルの上下移動が、物理的な配置によらず、同一列をトレースするように制御することが出来るようになる。その結果、スプレッドシートとしての操作性を維持したまま、データ量に応じて横幅を算出したスプレッドシートを生成することが出来るようになる。
【００７８】
ここで、本発明に関連する一般的なスプレッドシート生成システムの動作の一例について説明する。図１０を参照すると、本発明に関連するスプレッドシート生成システムでは、各セルの横幅の算出を行わず、表レイアウト記憶部２２が記憶する各列の横幅情報から各列の横幅を取得してスプレッドシートを生成する（Ｓ３０１）。つまり、本発明に関連するスプレッドシート生成システムでは、同一列の横幅は全行で同一となることになる。
【００７９】
その結果、本発明に関連するスプレッドシート生成システムは、例えば図１１で示すようなスプレッドシートを生成することになる。図１１で示すスプレッドシートの各セルが記憶するデータ量は、上述した（図６で示した）スプレッドシート生成システム１が生成するスプレッドシートの各セルが記憶するデータ量と同一である。しかしながら、上記説明したように、本発明に関連するスプレッドシート生成システムでは、各セルのデータ量に依存せず各列で同一の横幅のスプレッドシートを生成する。そのため、特にデータ量の少ないセルにおいて（図１１の場合では、文字「あ」１０文字のセル）、空白の部分（デッドスペース）が目立つことになる。また、その結果として、本発明に関連するスプレッドシート生成システムが生成するスプレッドシートは、同じ面積で記載可能な情報の量が上述したスプレッドシート生成システム１が生成するスプレッドシートと比較して少なくなることになる。例えば、図６及び図１１を参照すると、本実施形態におけるスプレッドシート生成システム１が生成するスプレッドシート全体に必要な高さが１２行である一方で、本発明に関連するスプレッドシート生成システムが生成するスプレッドシート全体に必要な高さは２１行になることになる。
【００８０】
なお、本実施形態においては、スプレッドシート生成システム１が、記憶装置２と制御装置３とを備える場合について説明した。しかしながら、スプレッドシート生成システム１は、記憶部と制御部とを備える１つの情報処理装置により実現されても構わない。このように、本発明は、スプレッドシート生成システム１が記憶装置２と制御装置３とを備える場合に限られず実施可能である。
【００８１】
また、図１２を参照すると、制御装置３は、例えば、表操作制御部３４を有することが出来る。表操作制御部３４は、上述した列を指定したソート処理（昇順、降順など）やフィルタ処理、カーソルの移動を実行する機能を有している。上述したように、表操作制御部３４は、スプレッドシートを構成する各セルの物理的な配置に依存せず同一の列に位置するセルを対応付けて扱うことになる。上記所定の処理は、例えば、入力部４を介して入力されることになる。
【００８２】
また、スプレッドシート生成システム１は、各セルの横幅を算出してスプレッドシートを生成する場合と、各セルの横幅を算出せず表の横幅情報を取得してスプレッドシートを生成する場合と、を切り替えることが出来るように構成しても構わない。このようにスプレッドシート生成システム１が切替機能を有することで、例えば、データ量等に応じて生成するスプレッドシートの種類を柔軟に変更することが可能となる。
【００８３】
また、本実施形態では、表レイアウト生成手段３３がスプレッドシートを生成する場合について説明した。しかしながら、本発明の表レイアウトは、スプレッドシートプログラム以外に適用することも考えられる。本発明の表レイアウトは、例えば、文書作成ソフトウェア（Ｗｏｒｄ、ＰｏｗｅｒＰｏｉｎｔなど）やＷｅｂ画面表示（ＨＴＭＬ  Ｔａｂｌｅ）などに適用しても構わない。
【００８４】
[第２の実施形態]
次に本発明の第２の実施形態について図面を参照して説明する。第２の実施形態では、スプレッドシートを生成する表レイアウト生成装置６について説明する。なお、本実施形態では、表レイアウト生成装置６の構成の概略について説明する。
【００８５】
図１３を参照すると、本実施形態における表レイアウト生成装置６は、列幅算出部６１と、行高決定部６２と、表レイアウト生成部６３と、を有している。
【００８６】
列幅算出部６１は、同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を算出する機能を有している。
【００８７】
行高決定部６２は、列幅算出部６１により算出された列幅の各セルについて、当該各セルに配置されるデータ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定する機能を有している。行高決定部６２は、まず、列幅算出部６１による算出結果（各セルの列幅）を取得する。続いて、行高決定部６２は、取得した各セルの列幅と各セルに配置されるデータ量とに基づいて、各セルの行の高さを算出する。そして、行高決定部６２は、算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定する。行高決定部６２は、例えば、算出した各セルの行の高さのうち高さが最大となる行の高さを、当該各セルが属する行の高さであるとして決定することになる。
【００８８】
表レイアウト生成部６３は、列幅算出部６１により算出される列幅と、行高決定部６２により決定される各行ごとの行の高さと、各セルのデータ内容と、に従って表レイアウトを生成する機能を有している。表レイアウト生成部６３は、まず、列幅算出部６１から各セルの列幅を取得する。また、表レイアウト生成部６３は、行高決定部６２から各行ごとの行の高さを取得する。また、表レイアウト生成部６３は、各セルのデータ内容を取得する。そして、表レイアウト生成部６３は、取得した列幅と、行の高さと、データ内容と、に従って表レイアウトを生成する。
【００８９】
このように、本実施形態における表レイアウト生成装置６は列幅算出部６１を有している。このような構成により、列幅算出部６１は、同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を算出することが出来る。つまり、同一の行に位置する各セルの列幅は、各セルのデータ量に応じたものになる。その結果、同一列の各セルのデータ量が異なる場合に空白部分を減らした表レイアウトを生成することが出来る。
【００９０】
また、上述した表レイアウト生成装置６は、当該表レイアウト生成装置６に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、表レイアウト生成装置に、同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を算出する列幅算出部と、列幅算出部により算出された列幅の各セルについて、当該各セルに配置されるデータ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定する行高決定部と、列幅算出部により算出される列幅と、行高決定部により決定される各行ごとの行高と、各セルのデータ内容と、に従って表レイアウトを生成する表レイアウト生成部と、を実現させるためのプログラムである。
【００９１】
また、上述した表レイアウト生成装置６が作動することにより実行される表レイアウト生成方法は、同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を変更し、各セルに配置されるデータ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定し、列幅と、各行ごとの行高と、各セルのデータ内容と、に従って表レイアウトを生成する、というものである。
【００９２】
上述した構成を有する、プログラム、又は、表レイアウト生成方法、の発明であっても、上記表レイアウト生成装置と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
【００９３】
[第３の実施形態]
次に本発明の第３の実施形態について図面を参照して説明する。第３の実施形態では、スプレッドシートを生成する表レイアウト生成システム７について説明する。なお、本実施形態では、表レイアウト生成システム７の構成の概略について説明する。
【００９４】
図１４を参照すると、本実施形態における表レイアウト生成システム７は、記憶装置８と、制御装置９と、を有している。
【００９５】
記憶装置８は、ハードディスクなどで構成されるストレージ装置である。図１４で示すように、記憶装置８は、表レイアウト記憶部８１を有している。
【００９６】
表レイアウト記憶部８１は、表レイアウト全体の横幅を示す横幅情報を記憶する。後述するように、表レイアウト記憶部８１が記憶する横幅情報は、列幅算出部９１で用いられることになる。
【００９７】
制御装置９は情報処理装置である。制御装置９は、図示しない中央演算装置（ＣＰＵ）と、記憶装置（メモリ及びハードディスク）と、を備えている。制御装置９は、記憶装置が備えるプログラムをＣＰＵが実行することで、後述する機能を実現するように構成されている。
【００９８】
図１４で示すように、制御装置９は、列幅算出部９１と、行高決定部９２と、表レイアウト生成部９３と、しての機能を有している。
【００９９】
列幅算出部９１は、同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を算出する。具体的には、列幅算出部９１は、表レイアウト記憶部８１が記憶する横幅情報が示す横幅を、同一の行に位置する各セルのデータ量に応じてセルごとに分配することで、各セルの列幅を算出する。列幅算出部９１が算出した列幅は、行高決定部９２及び表レイアウト生成部９３で用いられることになる。
【０１００】
行高決定部９２は、列幅算出部９１により算出された列幅の各セルについて、当該各セルに配置されるデータ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定する。行高決定部９２が決定した各行の高さは、表レイアウト生成部９３で用いられることになる。
【０１０１】
表レイアウト生成部９３は、列幅算出部９１により算出される列幅と、行高決定部９２により決定される各行ごとの行高と、各セルのデータ内容と、に従って表レイアウトを生成する。
【０１０２】
このように、本実施形態における表レイアウト生成システム７は列幅算出部９１を有している。また、表レイアウト記憶部８１が横幅情報を記憶している。このような構成により、列幅算出部９１は、同一行に位置する各セルのデータ量に応じて、横幅を配分することが出来る。つまり、データ量の多いセルは広い横幅を有する一方で、データ量の少ないセルの横幅は相応のものとなる。その結果、同一列の各セルのデータ量が異なる場合に空白部分を減らした表レイアウトを生成することが出来る。
【０１０３】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における表レイアウト生成装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【０１０４】
（付記１）
同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を算出する列幅算出部と、
前記列幅算出部により算出された列幅の各セルについて、当該各セルに配置される前記データ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定する行高決定部と、
前記列幅算出部により算出される列幅と、前記行高決定部により決定される各行ごとの行の高さと、前記各セルのデータ内容と、に従って表レイアウトを生成する表レイアウト生成部と、
を備える表レイアウト生成装置。
【０１０５】
この構成によると、表レイアウト生成装置が列幅算出手段を備えている。このような構成により、表レイアウト生成装置は、同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を算出することが出来る。つまり、同一の行に位置する各セルの列幅は、各セルのデータ量に応じたものになる。その結果、表レイアウト生成装置は、同一列の各セルのデータ量が異なる場合に空白部分を減らした表レイアウトを生成することが出来る。
【０１０６】
（付記２）
付記１に記載の表レイアウト生成装置であって、
前記表レイアウト全体の横幅を示す横幅情報を記憶する表レイアウト記憶部を備え、
前記列幅算出部は、前記表レイアウト記憶部が記憶する前記横幅情報が示す横幅を同一の行に位置する各セルのデータ量に応じてセルごとに分配することで、前記各セルの列幅を算出する、
表レイアウト生成装置。
【０１０７】
この構成によると、表レイアウト生成装置が表レイアウト記憶部を備えている。また、表レイアウト記憶部は、横幅情報を記憶している。このような構成により、表レイアウト生成装置は、同一行に位置する各セルのデータ量に応じて、横幅情報が示す横幅を配分することが出来る。その結果、表レイアウト生成装置は、同一列の各セルのデータ量が異なる場合に空白部分を減らした表レイアウトを生成することが出来る。
【０１０８】
（付記３）
付記２に記載の表レイアウト生成装置であって、
前記列幅算出部は、同一の行に位置する各セルのデータ量から各セルそれぞれのデータ量が同一の行に位置するセル全体のデータ量に占める割合を算出し、当該算出した割合に応じて前記横幅情報が示す横幅をセルごとに分配する、
表レイアウト生成装置。
【０１０９】
（付記４）
付記１乃至３の何れかに記載の表レイアウト生成装置であって、
前記表レイアウト生成部は、当該表レイアウト生成部により生成された前記表レイアウトを構成する各セルを、生成前の列番号に位置するセルとして扱うよう構成された、
表レイアウト生成装置。
【０１１０】
この構成によると、表レイアウト生成部は、当該表レイアウト生成部により生成された表レイアウトを構成する各セルを、列幅算出部による算出前の元の列番号に位置するセルとして扱うよう構成されている。つまり、表レイアウト生成部が生成する表レイアウトは、物理的な配置に依存せず同一の列に位置するセルを対応付けて扱うことが出来るよう生成されることになる。このような構成により、例えばカーソルの移動処理やソート処理、フィルタ処理などを行う際に、各行の同一列の集合に対して実施することが出来るようになる。その結果、スプレッドシートプログラムとしての操作性を維持したまま、空白部分を減らした表レイアウトを生成することが出来る。
【０１１１】
（付記５）
付記４に記載の表レイアウト生成装置であって、
入力された操作に応じて所定の処理を行う表操作制御部を備え、
前記表操作制御部は、前記表レイアウト生成部が生成した前記表レイアウトを構成する各セルを前記生成前の列番号に位置するセルとして前記操作に応じた所定の処理を行う、
表レイアウト生成装置。
【０１１２】
（付記５−１）
付記５に記載の表レイアウト生成装置であって、
前記表操作制御部は、前記所定の処理として、前記生成前の列番号に位置するセルとして列を指定したソート処理を実施可能なよう構成された、
表レイアウト生成装置。
【０１１３】
（付記５−２）
付記５又は５−１に記載の表レイアウト生成装置であって、
前記表操作制御部は、前記所定の処理として、前記生成前の列番号に位置するセルとして列を指定したフィルタ処理を実施可能なよう構成された、
表レイアウト生成装置。
【０１１４】
（付記５−３）
付記５乃至５−２の何れかに記載の表レイアウト生成装置で合って、
前記表操作制御部は、前記所定の処理として、前記生成前の列番号に位置するセルとして同一列をトレースするように表レイアウト中の所定のセルを選択するカーソルを上下移動させることが出来るよう構成された、
表レイアウト生成装置。
【０１１５】
（付記６）
付記１乃至５の何れかに記載の表レイアウト生成装置であって、
前記データ内容を記憶するセル情報記憶部を備え、
前記表レイアウト生成部は、前記列幅変更部により変更される列幅と、前記行高決定部により決定される各行ごとの行高と、前記セル情報記憶部が記憶するデータ内容と、に基づいて前記表レイアウトを生成する、
表レイアウト生成装置。
【０１１６】
（付記７）
同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を変更し、
前記各セルに配置される前記データ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定し、
前記列幅と、前記各行ごとの行高と、前記各セルのデータ内容と、に従って表レイアウトを生成する、
表レイアウト生成方法。
【０１１７】
（付記８）
付記７に記載の表レイアウト生成方法であって、表レイアウト全体の横幅を同一の行に位置する各セルのデータ量に応じて分配することで、前記各セルの列幅を変更する、
表レイアウト生成方法。
【０１１８】
（付記８−１）
付記８に記載の表レイアウト生成方法であって、
同一の行に位置する各セルのデータ量から各セルそれぞれのデータ量が同一の行に位置するセル全体のデータ量に占める割合を算出し、当該算出した割合に応じて前記横幅情報が示す横幅をセルごとに分配することで、前記各セルの列幅を変更する、
表レイアウト生成方法。
【０１１９】
（付記９）
表レイアウト生成装置に、
同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を算出する列幅算出部と、
前記列幅算出部により算出された列幅の各セルについて、当該各セルに配置される前記データ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定する行高決定部と、
前記列幅算出部により算出される列幅と、前記行高決定部により決定される各行ごとの行高と、前記各セルのデータ内容と、に従って表レイアウトを生成する表レイアウト生成部と、
を実現させるためのプログラム。
【０１２０】
（付記９−１）
付記９に記載のプログラムであって、
前記表レイアウト全体の横幅を示す横幅情報を記憶する表レイアウト記憶部を実現させ、
前記列幅算出部は、前記表レイアウト記憶部が記憶する前記横幅情報が示す横幅を同一の行に位置する各セルのデータ量に応じてセルごとに分配することで、前記各セルの列幅を算出する、
プログラム。
【０１２１】
（付記１０）
同一の行に位置する各セルのデータ量に応じて、当該各セルの列幅を算出する列幅算出部と、
前記列幅算出部により算出された列幅の各セルについて、当該各セルに配置される前記データ量に応じた行の高さをそれぞれ算出し、当該算出した各セルの行の高さに応じて同一の行に位置するセルの行の高さを決定する行高決定部と、
前記列幅算出部により算出される列幅と、前記行高決定部により決定される各行ごとの行高と、前記各セルのデータ内容と、に従って表レイアウトを生成する表レイアウト生成部と、
を備える制御装置と、
前記表レイアウト全体の横幅を示す横幅情報を記憶する表レイアウト記憶部を備える記憶装置と、を備え、
前記列幅算出部は、前記表レイアウト記憶部が記憶する前記横幅情報が示す横幅を同一の行に位置する各セルのデータ量に応じてセルごとに分配することで、前記各セルの列幅を算出する、
表レイアウト生成システム。
【０１２２】
（付記１０−１）
付記１０に記載の表レイアウト生成システムであって、
前記列幅変更部は、同一の行に位置する各セルのデータ量から各セルそれぞれのデータ量が同一の行に位置するセル全体のデータ量に占める割合を算出し、当該算出した割合に応じて前記横幅情報が示す横幅をセルごとに分配する、
表レイアウト生成装置。
【０１２３】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【０１２４】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【０１２５】
１  スプレッドシート生成システム
２  記憶装置
２１  セル情報記憶部
２２  表レイアウト記憶部
３  制御装置
３１  行の横幅配分手段
３２  行の高さ決定手段
３３  表レイアウト生成手段
３４  表操作制御部
４  入力部
５  表示部
６  表レイアウト生成装置
６１  列幅算出部
６２  行高決定部
６３  表レイアウト生成部
７  表レイアウト生成システム
８  記憶装置
８１  表レイアウト記憶部
９  制御装置
９１  列幅算出部
９２  行高決定部
９３  表レイアウト生成部
【図１】
2015170011.tif 000003
【図２】
2015170011.tif 000004
【図３】
2015170011.tif 000005
【図４】
2015170011.tif 000006
【図５】
2015170011.tif 000007
【図６】
2015170011.tif 000008
【図７】
2015170011.tif 000009
【図８】
2015170011.tif 000010
【図９】
2015170011.tif 000011
【図１０】
2015170011.tif 000012
【図１１】
2015170011.tif 000013
【図１２】
2015170011.tif 000014
【図１３】
2015170011.tif 000015
【図１４】
2015170011.tif 000016