1. ホーム
  2. android

[解決済み] XLS(エクセル)ファイルをメールに添付する

2022-03-03 16:38:08

質問

私のアプリケーションでは インテント メソッドで作成した Excel スプレッドシートデータをエクスポートする便利な方法として、ユーザーにメールを送信しています。 JExcell API ).

というフォルダーに格納され、SDカードに保存されます。 レコード .

送信しようとしているファイルは、次のとおりです。 measurments.xls。

送信前にファイルが存在するかどうかコードでテストしました。メールコンポーザーには添付ファイルが表示されていますが、メールを送信してから受信すると添付ファイルがありません。

しかし、エクセルファイルをpng画像に置き換えると、添付ファイルが受信されます。どうすればいいのでしょうか?

以下は、私がメールを送信するために使用しているコードです。これは、単にそれ自体でクラス内のパラメータ化された静的メソッドです。

    public static  void sendEmailWithAttachment(Context ctx, String to,String subject, String message, String fileAndLocation)
    {
        Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
        emailIntent.setType("text/plain");
        emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {to}); 

        emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,  subject); 
        emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,  message); 


          File file = new File(fileAndLocation);
         //  File file = getFileStreamPath();
           if (file.exists())
           {
               Log.v("Farmgraze", "Email file_exists!" );
           }
           else
           {
               Log.v("Farmgraze", "Email file does not exist!" );
           }


        Log.v("FarmGraze", "SEND EMAIL FileUri=" + Uri.parse("file:/"+ fileAndLocation));
        emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:/"+  fileAndLocation));

        ctx.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
    }//end method

では、xlsファイルを受け取るにはどうすればいいのでしょうか?メソッドのコードの2行目のMIMEタイプを変更するのでしょうか?もしそうなら何をすればいいのか。何か役立つアドバイスがあれば、非常にありがたいです。

お読みいただきありがとうございます。

A.

解決方法は?

さて、みなさん、この質問の締めくくりとして、私は解決策を見つけました。

問題は、URIに送信されるファイルパス文字列が、3つのフォワードスラッシュを持つ必要があることでした。

というように。

file:///sdcard/somefolder/some_file.xls.

また、Excel文書については、以下のようにタイプを設定する必要があります。

emailIntent.setType("application/excel");

つまり、問題は2つに分かれていたのです。私は、3つのスラッシュを使った解決策を意識していました。 このスレッド しかし、それがうまくいかなかったので、問題は別のところにあると考えました。

また、正しい MIME タイプを知るには このウェブページ これは、サポートされているすべての MIME タイプをリストしたもので、他の読者にとっても非常に有益なものでしょう。

というわけで、私の小さな問題に関心をもって読んでいただき、ありがとうございました!これで解決です。