UE4 讀寫 Excel


UE4中讀寫Excel需要導出為CSV文件,並且UE4自身提供的一種讀寫文件的組件:UDataTable。

<先記錄后完善>

//--------------------------------------------------------------------------------------------------------------------

1、首先需要創建一張Excel表,並導出為*.csv格式。注意在創建表時第一格不要鍵入描述,類似:

 

 

 

2、在工程代碼中創建一個struct,但要繼承自:FTableRowBase:

struct FHxUserInfoTable : public FTableRowBase
{
    GENERATED_USTRUCT_BODY()

public:

    FHxUserInfoTable()
    {}

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = HxUserInfo)
    FString Level;

   UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = HxUserInfo)
   int32 LvStar;

   UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = HxUserInfo)
   int32 TotalStar;

   UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = HxUserInfo)
   int32 Score;

   UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = HxUserInfo)
   float Time;

};

TODO:該結構體中的變量名字必須與Excel表中的表頭名字一致,以便在藍圖中在Import csv時相互關聯。

3、

4、

/*
    FString GoID = TEXT("1338888888");
    static const FString ContextString(TEXT("GENERAL"));
    static const FString FileName(TEXT("F:\\UE4\\Project_422\\VRDesk2.0_Ctrl\\VRDeskII\\Content\\HxUserInfoData.csv"));
    FHxUserInfoTable* UserTable = HxUserTable->FindRow<FHxUserInfoTable>(*GoID, ContextString);

    //
    GoID = TEXT("1883333333");
    FHxUserInfoTable TemTable;
    TemTable.Level = TEXT("3-2");
    TemTable.LvStar = 3;
    TemTable.TotalStar = 20;
    TemTable.Score = 100;
    TemTable.Time = 12.f;

    HxUserTable->AddRow(*GoID, TemTable);

    for (const auto& Value : HxUserTable->GetRowMap())
    {
        FName Title = Value.Key;
        UserTable = HxUserTable->FindRow<FHxUserInfoTable>(Title, ContextString);
        if (UserTable)
        {
            FString Tem = FString::Printf(TEXT("%s, %s, %d, %d, %d, %f"), *Title, *UserTable->Level, UserTable->LvStar, UserTable->TotalStar, UserTable->Score, UserTable->Time);
            GEngine->AddOnScreenDebugMessage(
                GEngine->ScreenMessages.Num() + 1,
                6.0f,
                FColor::Green, Tem
            );
        }
    }

    // exprot data to csv
    FFileHelper::SaveStringToFile(HxUserTable->GetTableAsCSV(EDataTableExportFlags::UsePrettyPropertyNames | EDataTableExportFlags::UsePrettyEnumNames), *FileName);
    */

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM