ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
XLSX は Microsoft Excel 2007 以降の既定保存形式で、表計算ファイルのデファクトスタンダードである。仕様は DOCX と同じく Office Open XML (OOXML) で、ECMA-376 / ISO/IEC 29500 に準拠している。
旧 .xls (バイナリ Excel 97-2003) はサイズが大きく、最大 65,536 行までの制限があったが、XLSX は 最大 1,048,576 行 × 16,384 列 まで扱える。なお、それでも大量データには向かず、数百万行を超えるデータは CSV や Parquet などに移すのが定石。
内部構造
XLSX の中身は ZIP で、シートごとに XML ファイルが分割されているのが大きな特徴。共通文字列を別ファイルに切り出すことでサイズを抑えている。
# XLSX の中身を確認
unzip -l sales.xlsx
# [Content_Types].xml
# _rels/.rels
# xl/workbook.xml ← ワークブック構成
# xl/worksheets/sheet1.xml ← シート 1 のセル
# xl/worksheets/sheet2.xml ← シート 2 のセル
# xl/sharedStrings.xml ← 共有文字列テーブル
# xl/styles.xml ← 書式定義
# xl/theme/theme1.xml
# xl/_rels/workbook.xml.rels
# docProps/core.xml
# docProps/app.xml
セルは <c> 要素で、文字列の場合は t="s" 属性が付き、値は sharedStrings.xml のインデックスになる。
<!-- xl/worksheets/sheet1.xml -->
<sheetData>
<row r="1">
<c r="A1" t="s"><v>0</v></c> <!-- sharedStrings の 0 番 -->
<c r="B1"><v>100</v></c> <!-- 数値 -->
<c r="C1"><f>B1*1.1</f><v>110</v></c> <!-- 数式 + 結果 -->
</row>
</sheetData>
<!-- xl/sharedStrings.xml -->
<sst xmlns="..." count="1" uniqueCount="1">
<si><t>商品コード</t></si>
</sst>
共有文字列テーブルは「同じ文字列が複数セルに出現する場合、重複させずに参照のみで持つ」省サイズ機構。逆に言うと、「セル値だけ見ても文字列が分からない」という構造で、CSV と比較した処理コストになる。
主な用途
- 経理・会計 — 売上・予算管理、財務諸表のドラフト
- データ集計 — 部署横断の数百〜数万行レベルのデータ分析
- 業務報告 — 表とグラフをセットでまとめる報告書
- マスターデータ管理 — システムへの取り込み用マスタの編集
- 請求書・見積書テンプレート — フォーマット入り入力フォーム
関連形式との比較
| 形式 | 拡張子 | 構造 | 書式 | 数式 | 用途の主軸 |
|---|---|---|---|---|---|
| XLSX | .xlsx | ZIP + XML | あり | あり | 業務全般 |
| XLS (旧) | .xls | BIFF バイナリ | あり | あり | レガシー互換 |
| XLSM | .xlsm | ZIP + XML + VBA | あり | あり + マクロ | マクロ付きツール |
| ODS | .ods | ZIP + XML | あり | あり | LibreOffice 標準 |
| CSV | .csv | プレーンテキスト | なし | なし | データ交換 |
| TSV | .tsv | プレーンテキスト | なし | なし | データ交換 |
編集・パーサ・ツール
Python の openpyxl は XLSX を直接読み書きできる軽量ライブラリ。書式やセル単位の細かい制御が可能。
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill
wb = Workbook()
ws = wb.active
ws.title = '売上'
ws['A1'] = '商品'
ws['B1'] = '単価'
ws['C1'] = '数量'
ws['D1'] = '小計'
# ヘッダーに書式
for col in ['A1','B1','C1','D1']:
ws[col].font = Font(bold=True, color='FFFFFF')
ws[col].fill = PatternFill('solid', fgColor='2563EB')
ws.append(['A 製品', 1500, 10, '=B2*C2'])
ws.append(['B 製品', 2400, 5, '=B3*C3'])
wb.save('sales.xlsx')
大量データ分析なら pandas。Excel の I/O は内部で openpyxl を使う。
import pandas as pd
# 全シート読み込み
sheets = pd.read_excel('sales.xlsx', sheet_name=None)
for name, df in sheets.items():
print(name, len(df))
# 集計して別シートへ書き出し
df = pd.read_excel('sales.xlsx', sheet_name='売上')
summary = df.groupby('商品')['小計'].sum().reset_index()
with pd.ExcelWriter('output.xlsx', engine='openpyxl') as w:
df.to_excel(w, sheet_name='明細', index=False)
summary.to_excel(w, sheet_name='集計', index=False)
注意点・落とし穴
- 共有文字列の罠 — XLSX のセル値を直接読むと文字列が取れない。sharedStrings.xml を経由する必要があるため、ライブラリを使うのが安全
- 数式は保存されるが「再計算」は別問題 — openpyxl は数式を文字列として保持するが、結果値を更新するわけではない。最後に Excel で開くまで
=B2*C2の結果は古いままという罠がある - 日付の正体は数値 — Excel の日付はシリアル値 (1900-01-01 を 1 とする整数)。タイムゾーンの概念がない
- マクロ付き .xlsm — VBA マクロは攻撃ベクタになりやすい。受信した .xlsm を不用意に有効化しない
- 大量データには不向き — 100 万行に達すると Excel が固まる。10 万行を超えるなら CSV + DB に移行する
- 結合セル — 機械処理を非常に困難にする悪手。データ用シートでは原則禁止
関連リンク
- テキスト・ドキュメント形式
- ファイル拡張子とは
- DOCX(.docx)
- PPTX(.pptx)
- ODT / ODS / ODP
- CSV(.csv)
- TSV(.tsv)
- アーカイブ・圧縮形式
- XML(.xml)
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?