0

この質問を表現する最善の方法がわかりませんでした..

この質問は、データ統合サービスを実装する前のものでしたが、知識のために、データベースに入力する必要のある Excel スプレッドシートのデータがありました。列の例は次のとおりです。ID、名前、ストリート。

Web フォームには 3 つのテキストボックスがあります。ユーザーは ID セルを Excel スプレッドシートからコピーし、それを Web フォームの ID テキストボックスに貼り付けます。次に、Excel スプレッドシートから [名前] セルをコピーし、それを Web フォームの [名前] テキスト ボックスに貼り付けます。

Excel スプレッドシートから行全体をコピーして、Web フォームの 1 つのテキスト ボックスに貼り付ける方法を考えています。

私の最初の試みは、テキストを Split() して Dictionary を作成することでした。住所の間にスペースがあるため、これは機能しませんでした。1 つのテキスト ボックスを 3 つのサブストリングに分割し、整合性とストリート フィールドのスペースを維持する方法は何ですか? Name と Street のデータ型は varchar(30) です。

'Example input of Textbox1.Text "1 myName Cheesecake Factory Lane"
    Dim words As String = TextBox1.Text
    Dim split As String() = words.Split(New [Char]() {" "c, ","c, "."c, ":"c, CChar(vbTab)})
    Dim rowData As New Dictionary(Of Integer, String)
    Dim i As Integer = 0

    For Each s As String In split

        If s.Trim() <> "" Then
          rowData.Add(i, s)
            i += 1
            ' output text for ID would be rowData.Item(0)
            'out text for Name would be rowData.Item(1)
            'out text for Street would be row.Data.Item(2)
        End If
    Next s
4

1 に答える 1

0

Excel は、いくつかのデータ形式をクリップボードに配置します。

「テキスト」形式では、セルが Tab で区切られ、行が Cr で区切られます。適切なセルを強調表示するには、ユーザーに依存する必要がありますが、Tab を使用して列 (または vbcrLf を使用して行) を簡単に分割できます。

形式を調べるためのコードを次に示します。

    Dim o As IDataObject = Clipboard.GetDataObject()
    Dim a() As String = o.GetFormats ' see what formats are available
    Dim x As Object = o.GetData("text") ' returns MemoryStreams so this isn't useful as written

    Dim s As String = Clipboard.GetText ' just get delimited text from Excel
于 2013-04-03T21:15:37.050 に答える