C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: WordのTableにデータ出力


(過去ログ 38 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■19423 / inTopicNo.1)  WordのTableにデータ出力
  
□投稿者/ かな (10回)-(2008/05/22(Thu) 22:02:44)

分類:[C#] 

データベースから検索した情報をWordの表形式(Table)で出力して、
.docファイルとして保存したいのですが。

検索条件に該当する情報が何件あるか不明なため、
下記のように1行ずつ追加しながら、1つずつセルに格納するやり方では
1000件出力するのに5分以上かかってしまいます。
Excelのように一括で出力するような、もっと出力時間を短縮する方法は
ありませんでしょうか。

  // テーブルを編集
    wdTable = wdDoc.Tables[1];
    object objNowRow = wdTable.Rows.Last as object;
    int write_row = 1;
    for (int i = 0; i < ReadData.Length; i++)
    {
        // 新しく行を作成
        wdTable.Rows.Add(ref objNowRow);

        // データ格納
        wdTable.Cell(write_row, 1).Range.Text = ReadData[i].Name;
        wdTable.Cell(write_row, 2).Range.Text = ReadData[i].Zip;
        wdTable.Cell(write_row, 3).Range.Text = ReadData[i].Addr;
        wdTable.Cell(write_row, 4).Range.Text = ReadData[i].Tel;
        wdTable.Cell(write_row, 5).Range.Text = ReadData[i].Birthday;
        write_row++;
    }


開発言語:C#(VisualStudio2005)
Word:Office2007です。

ご存じのかたいらっしゃいましたら、ご教授ください。
よろしくお願いします。

引用返信 編集キー/
■19424 / inTopicNo.2)  Re[1]: WordのTableにデータ出力
□投稿者/ やじゅ (396回)-(2008/05/22(Thu) 22:41:24)
やじゅ さんの Web サイト
No19423 (かな さん) に返信
> データベースから検索した情報をWordの表形式(Table)で出力して、
> .docファイルとして保存したいのですが。
>

駄目もと提案:

HTMLの表形式にして作成し、HTML形式で保存
WORDでHTML形式で保存したのを読み込み、
docファイルに変換する。

いいかどうかは別として速度は得られると思う。
引用返信 編集キー/
■19738 / inTopicNo.3)  Re[2]: WordのTableにデータ出力
□投稿者/ kana (1回)-(2008/05/28(Wed) 23:14:41)
No19424 (やじゅ さん) に返信
> ■No19423 (かな さん) に返信
>>データベースから検索した情報をWordの表形式(Table)で出力して、
>>.docファイルとして保存したいのですが。
>>
>
> 駄目もと提案:
>
> HTMLの表形式にして作成し、HTML形式で保存
> WORDでHTML形式で保存したのを読み込み、
> docファイルに変換する。
>
> いいかどうかは別として速度は得られると思う。
引用返信 編集キー/
■19741 / inTopicNo.4)  Re[3]: WordのTableにデータ出力
□投稿者/ かな (11回)-(2008/05/28(Wed) 23:25:59)
やじゅさん

>>駄目もと提案:
>>
>>HTMLの表形式にして作成し、HTML形式で保存
>>WORDでHTML形式で保存したのを読み込み、
>>docファイルに変換する。
>>
>>いいかどうかは別として速度は得られると思う。

ご提案ありがとうございます。
お礼が大変遅れてすみません。
教えていただいた方法でいろいろ試してみたのですが、
Wordの表の体裁をうまく整えることが難しいみたいです。

そこで私なりに考えてみたのですが、Wordの表って
複数のセルをマウスでドラッグして選択してコピー&ペーストって
できますよね。
なのでクリップボード経由で貼り付けられないものかと
考えたのですが。

今度はWordの表にうまく貼り付けられるようにクリップボードへの
セットの仕方がわかりません。
一旦Wordのファイルを開いて表をコピーをして、C#のプログラムから
クリップボードのデータをテキスト形式で覗いてみたところ、
セルとセルの間はタブ(\t)で区切られていたのですが、
単純に同じようにタブで区切ったテキスト文字列を
クリップボードにセットしてWordのセルに貼り付けても
全部ひとつのセルに入ってしまいました。(当然だと思いますが。。)

Wordの表に貼り付けられるようにするには、クリップボードには
どのようにセットすれば良いのでしょうか。

ご教授の程、よろしくお願いします。



引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -