0

権利イベントの結果がワークブックとワークシートになるというac#アプリケーションがあります。イベント結果が入力されるウィンドウフォームには、特定の結果フィールド(名前、スコア、時間、競技者番号など)ごとにテキストボックスが含まれ、ユーザーが結果を入力できるこれらのテキストボックスは約19行あります。 。これらのテキストボックスフィールドの多くは、名前、競技者番号、住所など、ユーザーがイベントの競技者を登録した後に自動入力されます。私の主な問題は、3つの異なるカテゴリで実行されているレースがいくつかあり、アプリケーションが必要なことです。どういうわけか、各カテゴリのすべてのイベントから最高の総合スコア/時間を見つけます。現在、登録フォームのテキストボックスフィールドの値を、forループ内のExcel相互運用機能と配列リストを使用してExcelスプレッドシートに配置しています。次に、range.sortメソッドを使用してExcelスプレッドシートの値を並べ替えています。イベントは別のワークシートで行われるため、達成しようとしていることを実行する方法を概念的に考案するのに苦労しています。誰かが私が調べなければならない行動方針について何か提案がありますか?これはExcelの相互運用に関する概念的な質問であることがわかっていますが、あまりにも多くのことが関係しているため、このためのコードを含めることはできませんでした。助けてくれてありがとう。あまりにも多くのことが関係しているので、このためのコードを含めてください。助けてくれてありがとう。あまりにも多くのことが関係しているので、このためのコードを含めてください。助けてくれてありがとう。

4

1 に答える 1

1

...私はExcelではこれを行いません。必要なすべてのデータを保持できるカスタムオブジェクトを介してこれを実行したいと思います。例えば:

Public Class EventData

Public Property CompetitorName As String
' ... Other Info you've inputted

Public Property EventName As String = ""
Public Property Category As String = ""

Public Property Score As Double = -1
Public Property Time As Double = -1

Public ReadOnly Property ComparisonVal As Double
    Get
        ' This could be either Score or Time
        ' Decide based upon which one <> -1 or something along those lines
    End Get
End Property

End Class

これで、コードで次のようなことができます。

Dim AllData as New List(Of EventData)

そして、リストに必要なすべてのデータを入力します(Excelシートを作成したのと同じように)

これで、データを好きなようにプルして、 &LinQでグループ化し、上位3つ(またはその他)の値を取得できます。EventCategoryComparisonVal

後で、必要に応じて、 EpplusまたはInteropを使用してカスタムオブジェクトデータをExcelに出力することもできますが、柔軟性が最も高いため、.Netを使用してすべての面倒な作業を行うことができます。あなたのコード/変数などで。

これが私の考えを説明し、VBコードをお詫びすることを願っています:)

于 2012-11-14T21:19:45.587 に答える