Automating Spreadsheet Integration with Claude Code
Learn about automating spreadsheet integration using Claude Code. Practical tips and code examples included.
スプレッドシート連携をClaude Codeで効率化する
業務システムではExcelやGoogle Sheetsとのデータ連携が頻繁に発生します。Claude Codeを使えば、ファイルの読み書き、データ変換、API連携まで一気に実装できます。
Excelファイルの読み込みと解析
SheetJS(xlsx)を使ったExcelファイルの読み込みです。
> xlsxライブラリでExcelファイルを読み込んで、型安全なオブジェクト配列に変換する関数を作って。
> ヘッダー行を型のキーとして使って。
import * as XLSX from "xlsx";
export function readExcel<T extends Record<string, unknown>>(
filePath: string,
sheetName?: string
): T[] {
const workbook = XLSX.readFile(filePath);
const sheet = sheetName
? workbook.Sheets[sheetName]
: workbook.Sheets[workbook.SheetNames[0]];
if (!sheet) throw new Error(`Sheet not found: ${sheetName}`);
const data = XLSX.utils.sheet_to_json<T>(sheet, {
defval: "",
raw: false,
});
return data;
}
// Usage example
interface Employee {
名前: string;
部署: string;
メール: string;
入社日: string;
}
const employees = readExcel<Employee>("./data/employees.xlsx");
console.log(employees);
// [
// { 名前: "田中太郎", 部署: "開発部", メール: "[email protected]", 入社日: "2024-04-01" },
// ...
// ]
Excelファイルの生成
データベースのデータをExcelに出力する機能です。
import * as XLSX from "xlsx";
interface ExportOptions {
sheetName?: string;
columnWidths?: number[];
headerStyle?: boolean;
}
export function createExcel<T extends Record<string, unknown>>(
data: T[],
outputPath: string,
options: ExportOptions = {}
) {
const { sheetName = "Sheet1", columnWidths } = options;
const worksheet = XLSX.utils.json_to_sheet(data);
// カラム幅の設定
if (columnWidths) {
worksheet["!cols"] = columnWidths.map((w) => ({ wch: w }));
} else {
// Auto-calculate width
const headers = Object.keys(data[0] || {});
worksheet["!cols"] = headers.map((header) => {
const maxLen = Math.max(
header.length * 2, // 日本語は2倍
...data.map((row) => String(row[header] || "").length)
);
return { wch: Math.min(maxLen + 2, 50) };
});
}
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);
XLSX.writeFile(workbook, outputPath);
}
// Usage example
const salesData = [
{ 月: "2026年1月", 売上: 1200000, 件数: 45 },
{ 月: "2026年2月", 売上: 1500000, 件数: 52 },
{ 月: "2026年3月", 売上: 1350000, 件数: 48 },
];
createExcel(salesData, "./output/sales-report.xlsx", {
sheetName: "売上レポート",
});
Google Sheets APIとの連携
Google Sheetsのデータをリアルタイムで読み書きする実装です。
import { google } from "googleapis";
const auth = new google.auth.GoogleAuth({
keyFile: "./credentials.json",
scopes: ["https://www.googleapis.com/auth/spreadsheets"],
});
const sheets = google.sheets({ version: "v4", auth });
export async function readGoogleSheet(
spreadsheetId: string,
range: string
): Promise<string[][]> {
const response = await sheets.spreadsheets.values.get({
spreadsheetId,
range,
});
return response.data.values || [];
}
export async function writeGoogleSheet(
spreadsheetId: string,
range: string,
values: (string | number)[][]
) {
await sheets.spreadsheets.values.update({
spreadsheetId,
range,
valueInputOption: "USER_ENTERED",
requestBody: { values },
});
}
export async function appendToGoogleSheet(
spreadsheetId: string,
range: string,
values: (string | number)[][]
) {
await sheets.spreadsheets.values.append({
spreadsheetId,
range,
valueInputOption: "USER_ENTERED",
requestBody: { values },
});
}
// Usage example
const data = await readGoogleSheet("SPREADSHEET_ID", "売上!A1:D100");
console.log(data);
await appendToGoogleSheet("SPREADSHEET_ID", "売上!A:D", [
["2026年4月", 1400000, 50, "=B5/C5"],
]);
CSVとExcelの相互変換
import * as XLSX from "xlsx";
import fs from "fs";
export function csvToExcel(csvPath: string, excelPath: string) {
const csv = fs.readFileSync(csvPath, "utf-8");
const workbook = XLSX.read(csv, { type: "string" });
XLSX.writeFile(workbook, excelPath);
}
export function excelToCsv(excelPath: string, csvPath: string, sheetIndex = 0) {
const workbook = XLSX.readFile(excelPath);
const sheetName = workbook.SheetNames[sheetIndex];
const csv = XLSX.utils.sheet_to_csv(workbook.Sheets[sheetName]);
fs.writeFileSync(csvPath, csv);
}
PDF帳票の出力と組み合わせる場合はPDF生成機能を、データの可視化についてはデータ可視化の実装もご覧ください。Claude Codeの基本操作は入門ガイドを参照してください。
Summary
Claude Codeを使えば、Excelの読み書き、Google Sheets連携、データ変換といったスプレッドシート関連の処理を短時間で実装できます。業務で頻出する「DBからExcel出力」「CSVからExcel変換」などのパターンは、自然言語で要件を伝えるだけで完成します。
詳しくはClaude Code公式ドキュメントを参照してください。
Related Posts
How to Supercharge Your Side Projects with Claude Code [With Examples]
How to Supercharge Your Side Projects with Claude Code [With Examples]. A practical guide with code examples.
How to Automate Refactoring with Claude Code
Learn how to automate refactoring using Claude Code. Includes practical code examples and step-by-step guidance.
Complete CORS Configuration Guide with Claude Code
Learn about complete cors configuration guide using Claude Code. Practical tips and code examples included.