如何在.NET MAUI中於Android上讀取和寫入Word文件

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

.NET MAUI(多平台應用UI)讓開發者能夠使用單一的C#程式碼庫來建立Android、iOS、macOS和Windows的原生應用。 這種方法簡化了開發並在所有平台上提供原生效能。

儘管IronWord沒有專門的Android套件,但通過.NET MAUI在Android上運行得非常順暢。 這意味著您可以輕鬆地建立在Android裝置上讀取和寫入Word文件的應用。

步驟1:建立您的.NET MAUI應用專案

首先開啟Visual Studio,建立一個新的.NET MAUI應用專案。 此專案型別支持從一個程式碼庫構建多平台應用。

選擇一個清晰的專案名稱,如IronWordMauiAndroid,以保持組織性。 此設置為建構原生Android應用奠定了基礎,且只需極少平台特定的程式碼。

步驟2:新增IronWord NuGet套件

IronWord可以通過其NuGet套件無縫整合到您的.NET專案中。 要通過NuGet新增IronWord,右鍵點擊您的專案,選擇管理NuGet套件。 搜索"IronWord"並安裝最新的穩定版本。

此外,您可以使用NuGet包管理器控制台通過執行以下行程式碼輕鬆新增它:

Install-Package IronWord

步驟3:在MainPage.xaml中設計UI

為了讓使用者在Android上建立和保存Word文件,您將使用XAML設計一個簡單而清晰的UI。 此介面包括:

  • 一個多行文字編輯器,讓使用者可以輸入或編輯內容。
  • 一個"儲存為Word文件"按鈕,用於觸發將當前文字保存為.docx文件。
  • 一個狀態標籤,為使用者提供反饋或錯誤訊息。

以下是定義此佈局的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是由Iron Software開發的一個程式庫,允許開發人員在其應用中(包括使用.NET MAUI的Android應用)處理Word文件。

如何將IronWord整合到Android應用中?

您可以按照Iron Software網站上的設置說明,將IronWord整合到您的Android應用中,該說明會引導您通過在.NET MAUI項目中新增該程式庫。

使用IronWord進行Android開發的好處是什麼?

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裝置上生成模板文件的應用來說相當理想。

Kye Stuart
技術作家

Kye Stuart在Iron Software結合了編碼熱情與寫作技能。就讀於Yoobee學院,專攻軟體部署,現在將複雜的技術概念轉化為清晰的教育內容。Kye重視終身學習,樂於迎接新的技術挑戰。

在工作之外,他喜歡PC遊戲、在Twitch上直播,以及戶外活動如園藝和帶他的狗Jaiya散步。Kye的直率方法使他成為Iron Software全球開發者解謎技術使命的關鍵。

準備開始了嗎?
Nuget 下載 49,323 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在滾動?

想要快速證明嗎? PM > Install-Package IronWord
運行範例觀看您的資料變成Word檔。