1

次のことを行うプログラムをVB.netで作成しています。

大まかに言えば、私は電子メールでファイルを受け取り、添付ファイルを監視フォルダーに入れ、テキストファイルをExcelにインポートし、Excelをフォーマットしてから、Excelファイルを受信者のリストに電子メールで送信します。

これが私の計画です:

  1. 完了:Outlook VBAを使用して、すべての受信メールで特定のメッセージを監視します。メッセージを受信したら、添付の.txtファイルを特定のネットワークフォルダにドロップします。
  2. 完了:(VB.net)モニターフォルダー、テキストファイルが追加されると処理を開始します
  3. 完了していません:(VB.net)テキストファイルをExcelにインポートします
  4. 未完了:(VB.net)Excelテキストファイルをフォーマットします。(データの行を追加し、列ヘッダーを色/サイズでフォーマットし、いくつかの空白の列を追加し、ドロップダウン選択を可能にするいくつかの空白の列にデータ検証を追加します)
  5. 完了:(VB.net)ファイルを保存します。
  6. 完了:(VB.net)受信者のリストにファイルを送信します。

明らかに、完了していない上記の項目は作業の大部分ですが、私はあなたの何人かがこのようなものにアプローチするための最良の方法であると思うものについていくつかのアドバイスを得たいと思いました。ファイルのインポートとフォーマットは、これを行うための最も効率的な方法を決定できないため、いくつかの問題を引き起こしています。

私がこれまで考えてきたこと:

  • 上記の方法。エクセルにインポート->フォーマット
  • すでに実行されているすべての書式設定を含む優れたテンプレートを用意し、データをこのドキュメントに移行しようとしています(これを実行できるかどうか/どのように実行できるかはわかりません)。それも実現可能ですか?テンプレートがすでに作成されていて、テキストファイルを新しいExcelファイルにインポートしてから、そのデータをExcelテンプレートに移行しますか?

ドキュメントのフォーマットに関して私が考えたのは、必要なすべてのフォーマットを実行するマクロを記録してから、そのマクロをvb.netコードに変換しようとすることでしたが、私はそうではありません。それがうまくいくかどうか確認してください。正しい場合は毎回、テキストファイルが正確な形式であることを確認する必要がありますか?

私は誰もが喜んで与えるアドバイス/提案に本当に感謝しています。

4

5 に答える 5

2

http://epplus.codeplex.com/を使用する必要があります

Excel自体を起動しなくても、Excelファイルを最初から作成できます。Excel を自動化するとプロセスが遅くなり、堅牢性に欠けます (Excel プロセスがハングしたり、適切に閉じられない可能性があります)。

さらに、.Net ライブラリを使用すると、Excel がインストールされていないサーバーなどで実行できます。(次のステップは、POP、IMAP、または Exchange API を介してメールボックスを検査することです。そのため、その部分をクライアント マシンで実行する必要はありません)

于 2012-05-11T13:58:53.023 に答える
1

Excel ファイルを操作する場合は、CodePlex にあるNPOI ライブラリをお勧めします。これには、OLE 自動化に比べていくつかの利点があります。

  1. NPOI は特定の Excel バージョンに依存しません。

  2. Excel (またはその他の Office コンポーネント) をインストールする必要はありません。

  3. より高速です。

.XLS ファイルと .XLSX ファイルの両方で動作します。

于 2012-05-11T14:10:35.377 に答える
1

http://msdn.microsoft.com/en-us/library/kh3965hw(v=vs.100).aspx

また、MS の Interops を使用して、Excel、Outlook、Word などとやり取りすることもできます。使用するのはまったく難しくありません。私は CodePlex に精通していないので、それがより良いルートまたはより簡単なルートになる可能性があります。代替案を提供したかっただけです。

于 2012-05-11T14:30:48.013 に答える
1

Microsoft Office 2010 Interops では、.net アプリケーションから Office ファイルを生成できなくなりました。

既存の Excel ファイルからデータを操作できるため、テンプレートが必要です (4 番目のポイント)。次に、Excel でいくつかのデータベースにクエリを実行できます。フォルダーでシミュレートできる場合があります。それ以外の場合は、.txt ファイルをいくつかのデータベースに変換することをお勧めします。(3点目)

古いバージョンを使用している場合は、Excel ファイルを Excel のインスタンスにロードし、必要に応じて操作することで、Excel ファイルをクレートできます。

ちなみに、添付ファイルには何らかの形式があると思いました。

于 2012-05-11T15:16:11.683 に答える
0

エクセルライターと呼ばれるサードパーティのソフトウェアを使用しています。ライセンスが必要なため、探しているものではないかもしれませんが、非常に高速であり、クライアントはチャートやデータ出力を待つ必要がありません。私たちはそのツールを持っているので、他に何も試していません。

于 2012-05-12T14:08:37.900 に答える