2011-08-05 11 views
0

問題があります。電子メールで送信しようとしているXMLスプレッドシートファイルがあります。そこでバイナリファイルに変換して電子メールに添付しました。問題は、Excelで開いたときに保存したデータが表示されないときです。変換後XMLファイルをバイナリ形式のファイルに変換した後にXMLヘッダが見つからない

<?xml version="1.0" encoding="utf-8"?> 
<?mso-application progid="Excel.Sheet"?> 
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> 
... 
<Styles> 
... 
</Styles> 
<Worksheet> 
... 
</Worksheet></Workbook> 



方法、それは次のようになります。

<Worksheet> 
... 
</Worksheet> 

私が試した私は、XMLファイルのようにそれを開いたとき、私はそれがXMLヘッダを保存していなかったことに気づきました私はxmldocumentを使用するが、私は動作していなかった、私はまた、まだ動作していない文字列を使用してみました。
これはXMLをバイナリに変換する方法です。

UTF8Encoding encoding = new UTF8Encoding(); 
binaryFile = encoding.GetBytes(xmlFile); 

この問題を解決するにはどうすればよいですか?おかげさまで

+3

私はあなたが関与している概念のかなりの部分を理解していないと思います。しかし詳細な説明がなくても、あなたを正しい方向に導くことは難しいです。例として、xmlファイルを電子メールに添付する前にxmlファイルを変換する必要はありません。どうしてそう思うの? – Achim

+0

XMLファイルを電子メールに添付したいので、ファイルをバイナリ配列に変換してMailMessageクラスを使用して電子メールに添付する必要があります。 – danny

答えて

0

私は自分の間違いを見つけました。XMLファイルをシリアル化していないので、変換後にXMLヘッダーのないデータが表示されるだけです。この問題を解決する2つの方法があります: 最初に、ヘッダをデータ文字列と連結するか、serialize関数を使用します。 This is where I've found how to do it

1

XMLファイルをどのように変換しているかについてさらに詳しい情報が必要だと思います。

あなたの説明からは、ExcelスプレッドシートをXMLに保存したように思えます。何らかの理由でこのテキスト文書を電子メールに添付することはできません。私の推測では、バイト配列を必要とするXMLファイルを添付するメソッドを使用しているだけで、ファイルの場所を指定することはできません。あなたがこれについてより多くの情報を提供することができれば、状況が間違っている場所を把握するのに役立ちます。

私は本当にに引っかかってる部分がある:

私はXmlDocumentオブジェクトを使用することを試みたが、私は働いていませんでした、私もまだ働いていない、文字列を使用して を試してみました。

どのように文字列を試しましたか? FileStreamを使ってディスクからファイルを読みましたか?そうであれば、ファイルの全内容を取得できたはずです。

XmlDocumentを使用していて、XmlDocument.OuterXmlを試していましたか?これは、ルートノード内のXML本体の一部ではないため、おそらくコントロールヘッダーを与えません。

本当に私が試みた2つのことがあります。 「このISN場合は今

using (FileStream fs = new FileStream("", FileMode.Open, FileAccess.Read)) 
{ 
    byte[] binaryFile = new byte[fs.Length]; 
    fs.Read(binaryFile, 0, buff.LongLength); 

    //Copy the byte array to your email object. 
} 

:私は、ディスク上のXMLファイルを持っていたし、コードを電子メールに添付するのに必要な、私の唯一のオプションは、バイト配列を提供することでした場合はまず、私のような何かをしたいです何をやっているのか、あなたは何をやっているのか(ディスク上のファイル?)、何をする必要があるのか​​(自動化された電子メールを送るのか?潜在的な解決策を制限します。

関連する問題