2012-05-11 11 views
1

私は次のことを行いVB.netでのプログラム作成しています。put、私は電子メールでファイルを受信ハイレベルでVB.netテキスト - > Excelの変換(変換後に必要な書式設定が)

を監視フォルダに添付ファイルを添付し、テキストファイルをExcelにインポートし、Excelをフォーマットして、Excelファイルを受信者のリストに電子メールで送信します。ここで

は私の計画である:

完了
  1. ます。Outlook VBAは、特定のメッセージのためにすべての受信メールを監視すること。メッセージが受信されると、特定のネットワークフォルダに.txtファイルが添付されます。完成し
  2. :(VB.net)テキストファイルが完了していない
  3. の処理を開始追加されているフォルダ、モニター:完了していない
  4. エクセル
  5. に(VB.net)のインポートテキストファイルを:(VB.net)書式Excelのテキストファイル。 (データ行の追加、色/サイズの列見出しの書式設定、空白列の追加、ドロップダウン選択を許可する空白列のデータ検証の追加)
  6. 完了:(VB.net)ファイルを保存します。
  7. 完了:(VB.net)受信者の一覧にファイルを送信します。

明らかに上記の項目は完全ではありませんが、私はこのようなものに近づくための最良の方法と思われるものについていくつかのアドバイスをしたかったのです。ファイルのインポートと書式設定は、これを行う最も効率的な方法が何であるかを判断できないため、私にいくつかの問題を引き起こしています。

  • 上記の方法:私はこれまで考えてきたもの

    。エクセルにインポート - >フォーマット

  • 私のために既に行われたフォーマットをすべて含むテンプレートエクセルを持っていて、データをこのドキュメントに移行しようとしています。それは実現可能ですか?テンプレートをすでに作成しておき、テキストファイルを新しいExcelファイルにインポートし、そのデータをExcelテンプレートに移行しますか?

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

誰もが喜んで提供しているアドバイスや提案に本当に感謝しています。

答えて

2

あなたはそれはあなたがエクセル自体を起動することなく、最初からExcelファイルを作成することができますhttp://epplus.codeplex.com/

を使用したいと思うでしょう。 Excelを自動化するとプロセスが遅くなり、堅牢性が失われます(Excelプロセスがハングアップしたり正しく終了しないことがあります)。

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

+0

甘い、ありがとうDirk!私は今それを見に行くつもりです。私は本当に助けに感謝します! – Trizzle

+0

Dirk - 最初にテキストファイルをExcelにインポートしてから、すべての書式を適用することをお勧めしますか? – Trizzle

+0

私はメモリ内のテキストファイルからデータを読み込みます(一般的な形式の場合はhttp://www.filehelpers.com/などのライブラリを使用しています)。その後、メモリからExcelを作成します。 – Dirk

1

Excelファイルを操作する場合は、 CodePlexにはNPOI libraryが見つかりました。OLEオートメーションに比べていくつかの利点があります。

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

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

  3. より速いです。

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

+0

Olivierありがとう、私もこれを見ていきます。 – Trizzle

1

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

また、単に彼らが使用することを全く難しいことではないよなど、エクセルは、Outlook、Wordのと対話するためにMSからInteropsを使用することができます。私はCodePlexに慣れていないので、より良いルートまたはより簡単なルートになる可能性があります。私はちょうどあなたに代替案を提供したかったのです。

+0

感謝Yatrix - 私は使いやすさのためにEPPlusのようなものを使用して終了するつもりだと思います。 – Trizzle

+0

クール。正解を与えてそれを受け入れることを忘れないでください。運が良かったよ。 – Yatrix

+0

ありがとう再びYatrix!私は正しい答えとして使用しているものをマークしましたが、アップヴォートするときはいつでも、私は何かアップアップするほどの評判はないと言われています。ああ、それは時間が来る/私は確信している使用 – Trizzle

1

Microsoft Office 2010 Interopsでは、.netアプリケーションからOfficeファイルを生成することはできません。

既存のExcelファイルからデータを操作して、テンプレート(4番目のポイント)が必要になります。 Excelでは、いくつかのデータベースを照会することができます。あなたのフォルダで1つをシミュレートすることができるかもしれません。そうしないと、.txtファイルをいくつかのデータベースに変換することをお勧めします。 (3番目のポイント)

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

ところで、添付ファイルには何らかの形式があると思われます。

+0

まあ、添付ファイルは、区切り文字 '#'でインポート用に設定されたテキストファイルです。だから私は区切られたテキストファイルをインポートし、かなり広範なフォーマットを適用する必要があります。私はEPPlusを見ています。私はそれを書式設定に使用できると思います。今では、区切られたテキストファイルをインポートする方法を理解する必要があります。 – Trizzle

+0

これらの#をタブで置き換えれば、それを「貼り付ける」ことができます。 Interopsでそれを行うために使用されます。ラインの最後にキャリッジリターンを置くだけで、シート内をジャンプします。セルのグループを選択して貼り付けたような動作をします。ペーストが始まるセルを選択するだけです。 – Yatrix

+0

区切られたテキストファイルを読むには、FileHelpers Library(http://www.filehelpers.com/)をお勧めします。私はInteropを使ってExcelにエクスポートすることもできると思いますが、何らかのフォーマットを行う必要があるので、epplusはおそらくもっと良い選択です。 – Dirk

0

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

関連する問題