How to Read and Write Word Documents on Android in .NET MAUI

This article was translated from English: Does it need improvement?
Translated
View the article in English

.NET MAUI (Multi-platform App UI) を使用すると、単一のC#コードベースでAndroid、iOS、macOS、およびWindows向けのネイティブアプリを開発できます。 このアプローチは開発を簡素化し、すべてのプラットフォームでネイティブのパフォーマンスを提供します。

IronWordには専用のAndroidパッケージはありませんが、.NET MAUIを通じてAndroidでスムーズに動作します。 つまり、Androidデバイス上でWordドキュメントを読み書きするアプリを容易に構築できます。

class="hsg-featured-snippet">

Androidの.NET MAUIでIronWordを使用する方法

  1. .NET MAUI App Projectを作成する
  2. AndroidでWordドキュメントを操作するためのC#ライブラリをダウンロードする
  3. MainPage.xamlでUIを設計する
  4. MainPage.xaml.csでドキュメント処理を実装する
  5. あなたのアプリをAndroid上で実行する

ステップ1:.NET MAUI App Projectを作成する

Visual Studioを開き、新しい.NET MAUI Appプロジェクトを作成することから始めます。 このプロジェクトタイプは、1つのコードベースから複数のプラットフォーム向けアプリの構築をサポートしています。

効率的に整理するために、IronWordMauiAndroidのような明確なプロジェクト名を選びましょう。 この設定は、プラットフォーム固有のコードを最小限に抑えてネイティブAndroidアプリの基盤を築きます。

ステップ2:IronWord NuGetパッケージを追加する

IronWordは、そのNuGetパッケージを通じて.NETプロジェクトにシームレスに統合できます。 NuGetを介してIronWordを追加するには、プロジェクトを右クリックして「NuGetパッケージの管理」を選択します。 "IronWord"を検索し、最新の安定版をインストールします。

あるいは、NuGetパッケージマネージャコンソールを使用して次の行を実行することで簡単に追加できます:

Install-Package IronWord

ステップ3:MainPage.xamlでUIを設計する

AndroidでユーザーがWordドキュメントを作成し保存できるように、XAMLを使用してシンプルでクリーンなUIを設計します。 このインターフェイスには以下が含まれます:

  • ユーザーがコンテンツを入力または編集できるマルチラインテキストエディタ。
  • 現在のテキストを.docxファイルとして保存する「Wordドキュメントとして保存」ボタン。
  • ユーザーにフィードバックやエラーメッセージを提供するステータスラベル。

このレイアウトを定義するXAMLマークアップはこちらです:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="IronWordAndroid.MainPage">

    <VerticalStackLayout Padding="20" Spacing="15">
        <Editor x:Name="WordEditor"
                Placeholder="Enter your text..."
                AutoSize="TextChanges"
                HeightRequest="300"/>
        <Button Text="Save as Word Document" Clicked="OnSaveWordClicked"/>
        <Label x:Name="StatusLabel" FontSize="12" TextColor="Gray"/>
    </VerticalStackLayout>
</ContentPage>
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="IronWordAndroid.MainPage">

    <VerticalStackLayout Padding="20" Spacing="15">
        <Editor x:Name="WordEditor"
                Placeholder="Enter your text..."
                AutoSize="TextChanges"
                HeightRequest="300"/>
        <Button Text="Save as Word Document" Clicked="OnSaveWordClicked"/>
        <Label x:Name="StatusLabel" FontSize="12" TextColor="Gray"/>
    </VerticalStackLayout>
</ContentPage>
XML

ステップ4:MainPage.xaml.csでドキュメント処理を実装する

UIのセットアップが完了したら、ドキュメントの保存を処理するロジックを追加できます。 MainPage.xaml.csで、コンストラクタでIronWordのライセンスキーを設定し、OnSaveWordClickedメソッドを実装します。

ボタンがタップされると、アプリは新しいWordDocumentを作成し、エディターからテキストをパラグラフとして追加し、ファイルを保存します。Androidではダウンロードフォルダに保存されます。 他のプラットフォームでは、アプリのキャッシュディレクトリを使用します。

try-catchブロックは、エラーをキャッチしてステータスラベルに表示することを保証します。

こちらが動作する完全なコードです:

using IronWord;
using IronWord.Models;
using Microsoft.Maui.Storage;
using System.Text;

namespace IronWordAndroid;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();

        // Set your IronWord license key
        License.LicenseKey = "YOUR-LICENSE-KEY";
    }

    private async void OnSaveWordClicked(object sender, EventArgs e)
    {
        try
        {
            // Create new Word document
            var document = new WordDocument();
            Paragraph paragraph = new Paragraph(new TextContent(WordEditor.Text));
            // Add basic text content
            document.AddParagraph(paragraph);

            // Generate a filename
            string fileName = $"MyWordDoc_{DateTime.Now:yyyyMMddHHmmss}.docx";

#if ANDROID
            string filePath = Path.Combine("/storage/emulated/0/Download", fileName);
#else
            string filePath = Path.Combine(FileSystem.CacheDirectory, fileName);
#endif

            // Save to path
            document.SaveAs(filePath);

            StatusLabel.Text = $"Saved to: {filePath}";
            await DisplayAlert("Success", $"File saved: {filePath}", "OK");
        }
        catch (Exception ex)
        {
            StatusLabel.Text = $"Error: {ex.Message}";
        }
    }
}
using IronWord;
using IronWord.Models;
using Microsoft.Maui.Storage;
using System.Text;

namespace IronWordAndroid;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();

        // Set your IronWord license key
        License.LicenseKey = "YOUR-LICENSE-KEY";
    }

    private async void OnSaveWordClicked(object sender, EventArgs e)
    {
        try
        {
            // Create new Word document
            var document = new WordDocument();
            Paragraph paragraph = new Paragraph(new TextContent(WordEditor.Text));
            // Add basic text content
            document.AddParagraph(paragraph);

            // Generate a filename
            string fileName = $"MyWordDoc_{DateTime.Now:yyyyMMddHHmmss}.docx";

#if ANDROID
            string filePath = Path.Combine("/storage/emulated/0/Download", fileName);
#else
            string filePath = Path.Combine(FileSystem.CacheDirectory, fileName);
#endif

            // Save to path
            document.SaveAs(filePath);

            StatusLabel.Text = $"Saved to: {filePath}";
            await DisplayAlert("Success", $"File saved: {filePath}", "OK");
        }
        catch (Exception ex)
        {
            StatusLabel.Text = $"Error: {ex.Message}";
        }
    }
}
Imports IronWord
Imports IronWord.Models
Imports Microsoft.Maui.Storage
Imports System.Text

Namespace IronWordAndroid

	Partial Public Class MainPage
		Inherits ContentPage

		Public Sub New()
			InitializeComponent()

			' Set your IronWord license key
			License.LicenseKey = "YOUR-LICENSE-KEY"
		End Sub

		Private Async Sub OnSaveWordClicked(ByVal sender As Object, ByVal e As EventArgs)
			Try
				' Create new Word document
				Dim document = New WordDocument()
				Dim paragraph As New Paragraph(New TextContent(WordEditor.Text))
				' Add basic text content
				document.AddParagraph(paragraph)

				' Generate a filename
				Dim fileName As String = $"MyWordDoc_{DateTime.Now:yyyyMMddHHmmss}.docx"

#If ANDROID Then
				Dim filePath As String = Path.Combine("/storage/emulated/0/Download", fileName)
#Else
				Dim filePath As String = Path.Combine(FileSystem.CacheDirectory, fileName)
#End If

				' Save to path
				document.SaveAs(filePath)

				StatusLabel.Text = $"Saved to: {filePath}"
				Await DisplayAlert("Success", $"File saved: {filePath}", "OK")
			Catch ex As Exception
				StatusLabel.Text = $"Error: {ex.Message}"
			End Try
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

ステップ5:アプリをAndroidで実行する

アプリケーションをVisual StudioからAndroidエミュレータまたは実機に簡単にデプロイします。 これにより、Wordドキュメントを開く、コンテンツを編集する、変更を保存するなどの重要な機能をすぐにテストできます。

ネイティブのAndroidファイルピッカーを統合することで、ユーザーにシームレスでなじみのある体験を提供し、全体的なユーザビリティが向上します。

IronWordは完全に.NET環境内で動作するため、追加のSDKやプラットフォーム固有の依存関係が不要です。これにより、アプリの開発、維持、および配布が簡単になります。

よくある質問

IronWordとは何か?

IronWordは、.NET MAUIを使用するAndroidアプリを含むアプリケーションでWordドキュメントを扱うためにIron Softwareが開発したライブラリです。

IronWordをAndroidアプリケーションに統合するにはどうすれば良いですか?

Iron Softwareのウェブサイトのセットアップ手順に従うことで、.NET MAUIプロジェクトにライブラリを追加し、AndroidアプリケーションにIronWordを統合することができます。

Android開発においてIronWordを使用するメリットは何ですか?

IronWordは、Androidアプリケーション内でWordドキュメントを簡単かつ効率的に読み書きし操作するための方法を提供し、シームレスなクロスプラットフォーム開発のために.NET MAUIの力を活用します。

IronWordは複雑なWordドキュメントを扱うことはできますか?

はい、IronWordは高度なフォーマットや埋め込み要素を含む複雑なWordドキュメントを扱うように設計されており、開発者にとって堅実な選択です。

IronWordは.NET MAUIと互換性がありますか?

はい、IronWordは.NET MAUIと完全に互換性があり、開発者がWordドキュメント処理機能を含むクロスプラットフォームアプリケーションを構築できるようにします。

IronWordが処理できるファイル形式は何ですか?

IronWordは主にDOCXやDOCなどのWordドキュメント形式を扱い、これらのファイルを読み書きするための包括的な機能を提供します。

IronWordはAndroidでのドキュメント変換をサポートしますか?

IronWordはドキュメント変換機能をサポートしており、必要に応じてAndroidアプリケーション内でWordドキュメントを他の形式に変換することが可能です。

IronWordの試用版はありますか?

はい、Iron SoftwareはIronWordの無料試用版を提供しており、開発者が購入を決定する前にその機能や性能を確認できます。

IronWordユーザーへのサポートはどのように提供されていますか?

Iron SoftwareはIronWordユーザーに総合的なサポートを提供し、ドキュメント、チュートリアル、および専用のサポートチームが、問題の解決を助けます。

IronWordはAndroidでWordテンプレートを作成するために使用できますか?

はい、IronWordはWordテンプレートの作成および処理に使用でき、Androidデバイスでのテンプレートドキュメント生成を必要とするアプリケーションに最適です。

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'name'

Filename: sections/author_component.php

Line Number: 18

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 18
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/get-started/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Getstarted.php
Line: 25
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'title'

Filename: sections/author_component.php

Line Number: 38

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 38
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/get-started/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Getstarted.php
Line: 25
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'comment'

Filename: sections/author_component.php

Line Number: 48

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 48
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/get-started/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Getstarted.php
Line: 25
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

準備はいいですか?
Nuget ダウンロード 25,807 | バージョン: 2025.11 ただ今リリースされました