Use Cases

Automating Spreadsheet Integration dengan Claude Code

Pelajari tentang automating spreadsheet integration menggunakan Claude Code. Dilengkapi tips praktis dan contoh kode.

スプレッドシートintegrasi dengan Claude Code: efisiensi

業務sistem ExcelやGoogle Sheets dan データintegrasi 頻繁 発生.Claude Code 使えば、file 読み書き、データkonversi、APIintegrasiま 一気 implementasi bisa dilakukan.

loadingと解析 Excelfile

SheetJS(xlsx) 使ったExcelfile loading.

> xlsxlibrary dengan Excelfile 読み込ん dengan 、type safetyなobjekarray konversiするfungsi buatkan.
> header行 型 キー dan して使って。
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);
// [
//   { 名前: "田中太郎", 部署: "pengembangan部", メール: "[email protected]", 入社日:"2024-04-01" },
//   ...
// ]

generate Excelfile

database データ Excel output 機能.

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);

  // カラム幅 pengaturan
  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: "売上レポート",
});

integrasi Google Sheets API

Google Sheets データ リアルタイム 読み書き implementasi.

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"],
]);

相互konversi 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);
}

Untuk PDF帳票のoutputと組み合わせる場合はPDFgenerate機能を、データのvisualisasiについてはデータvisualisasiのimplementasiもご覧ください。Claude Codeのdasaroperasi, lihat 入門ガイド.

Summary

Dengan Claude Code, Excel 読み書き、Google Sheetsintegrasi、データkonversi dan いったスプレッドシート関連 pemrosesan waktu singkat implementasi bisa dilakukan.業務 頻出 「DB dari Exceloutput」「CSV dari Excelkonversi」 dll. pola 、自然言語 要件 伝えるだけ 完成.

Untuk detail lebih lanjut, lihat Dokumentasi Resmi Claude Code.

#Claude Code #spreadsheet #Excel #Google Sheets #automation