hatokamome

hatokamomeの趣味・雑記録

エクセルファイルの読み書きと自動化について(Java、Python、およびVBA)

エクセルファイルの読み書きと自動化には、さまざまなプログラミング言語を利用できます。Java、Python、およびVBAについて概要、説明、サンプルソース、本家サイトURLを以下に示します。

【Java】

概要: Javaでは、Apache POI ライブラリを使用してエクセルファイルの読み書きを行うことができます。

説明: Apache POIは、Microsoft Officeファイルと互換性のあるファイル形式に対応したJava用のライブラリです。エクセルファイル(.xls、.xlsx)の読み書きに特化したHSSFおよびXSSFというコンポーネントが含まれています。

サンプルソース:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelReadWrite {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("input.xlsx");
        Workbook workbook = new XSSFWorkbook(fis);
        Sheet sheet = workbook.getSheetAt(0);

        // Read cell value
        Row row = sheet.getRow(0);
        Cell cell = row.getCell(0);
        System.out.println(cell.getStringCellValue());

        // Write cell value
        cell.setCellValue("New Value");

        // Save the changes
        FileOutputStream fos = new FileOutputStream("output.xlsx");
        workbook.write(fos);

        workbook.close();
        fos.close();
        fis.close();
    }
}

本家サイトURL: https://poi.apache.org/

【Python】

概要: Pythonでは、openpyxl、pandas、xlrd、xlwtなどのライブラリを使用してエクセルファイルの読み書きができます。ここでは、よく使われるopenpyxlを紹介します。

説明: openpyxlは、PythonでExcelファイル(.xlsx)の読み書きを行うためのライブラリです。

サンプルソース:

import openpyxl

# Read Excel file
workbook = openpyxl.load_workbook("input.xlsx")
sheet = workbook.active

# Read cell value
cell_value = sheet["A1"].value
print(cell_value)

# Write cell value
sheet["A1"] = "New Value"

# Save the changes
workbook.save("output.xlsx")
workbook.close()

本家サイトURL: https://openpyxl.readthedocs.io/

【VBA】

概要: VBA(Visual Basic for Applications)は、Microsoft Officeアプリケーション向けのプログラミング言語で、Excelマクロとして使用できます。

説明: VBAを使用すると、Excelのオブジェクト(ワークシート、セルなど)にアクセスし、読み書きや自動化を行うことができます。

サンプルソース:

Sub ReadWriteExcel()
    Dim workbook As Workbook
    Dim sheet As Worksheet
    Dim cell As Range

    ' Open Excel file
    Set workbook = Workbooks.Open("input.xlsx")
    Set sheet = workbook.Worksheets(1)

    ' Read cell value
    Set cell = sheet.Cells(1, 1)
    MsgBox cell.Value

    ' Write cell value
    cell.Value = "New Value"

    ' Save the changes
    workbook.SaveAs "output.xlsx"
    workbook.Close
End Sub

本家サイトURL: https://docs.microsoft.com/en-us/office/vba/api/overview/excel

これらのプログラミング言語やライブラリを使って、エクセルファイルの読み書きや自動化を実現できます。選択する言語やライブラリは、既存のスキルやプロジェクトの要件に応じて選ぶと良いでしょう。