2017-11-09 10 views
-1

私は、社内のすべての従業員に新しい電子メールの署名ブロックを配布することを任されました。私は、HTMLのいくつかの行を変更する方法について、私はちょうどそれをやるだろう。だから私は彼らが(名前、位置、セル#)を記入するためのいくつかの情報とExcelテーブルを送り出した。私は最終的な署名のためのすべての正しいフォーマットのテンプレート.txtファイルを持っています。私の質問は、テンプレート内の適切なフレーズをテーブルの個人情報に置き換えて、毎回新しい.htmファイルを保存するという、最良の方法です。バッチテーブルからの値を持つ.txtを編集する

テンプレートには「あなたの名前はここにあります」と「あなたの位置はここ」のようなものがありますので、それらの繰り返しをそれぞれ置き換える方法が必要だと思います。私はスクリプトダンスですので、どんな助けも大歓迎です!

+0

"Scripting"?あなたは正しいタグを持っているかどうかはわかりません。 [ask]を読んで[tour]を取ってください。タグには、どのタグが適用されるかを示すためのテキストが含まれています。 – Plutonix

+0

バッチファイルはExcelファイルを読み取ることができません。また、グラフィカルユーザーインターフェイスプログラムと対話することもできません。 – Squashman

+0

OPはバッチファイルを意味しないと思います。私は彼らがコードで自動的にそれを行うことを意味したと思います。 –

答えて

0

あなたがOutlook 2008以降を使用していると仮定した場合、SignatureはC:\ Users \ AppData \ Roaming \ Microsoft \ Signaturesディレクトリに.htm、.rtf、および.txtとして保存されていると考えられます。 「( Get Cell Value in Excel from Range
2.単にString.Replace:文字列などの情報を含む適切な細胞のための
1.反復Excelファイル:
は、私が最も簡単な方法は、Visual Studioのを使用するようにアプリケーションを書くことになりますと信じてここにあなたのお名前」、セル名)C $ \\ユーザーを\に変更された.htm保存
3. https://msdn.microsoft.com/en-us/library/fk49wtc1(v=vs.110).aspx の.htmからVisual Studioを使用している場合、のAppData \ローミング\マイクロソフト\署名\

を\\ 「Your Name Here」に名前が変更された.HTMテンプレートを追加するのはあまり難しくありません。次に、あなたのプログラムは.htmを読み込み、変更して、新しい.htmをコンピュータに保存するだけです。それから、次へ!

0

まず、hereを見て、スプレッドシートを繰り返し処理して各行のセル値を取得する方法を知りたいと思うでしょう。

その後、thisをチェックして、テンプレートファイルを文字列に読み込む方法を確認します。

完了したらループ内のすばやいString.Replaceがテキストをスワップし、thisは新しい.htmファイルにテキストを書き込む方法を示します。基本的にお望みです

Dim template, line As String 
Dim sr as StreamReader = new StreamReader("C:\template.htm") 
Dim sw as StreamWriter 
'Other vars as needed to read the Excel file and keep/stop looping.... 
'Read all lines from template file into template 

while (keepgoing) 
    cellName = ws.Cells(rowNum, colNum).Value2.ToString() 
    'Grab other values from cells 
    If (Not String.IsNullOrEmpty(cellName) 
     line = template.Replace("Your Name Here", cellName) 
     line = line.Replace("Your Position Here", cellPosition) 
     'etc 
     sw = new StreamReader("C:\Sig_" & cellName & ".htm") 
     sw.Write(line) 
     sw.close() 
    Else 
     keepgoing = false 
    End If 
End While 

希望します。

関連する問題