23

データをExcelファイルに移動するコンソールアプリを構築しています(EPPlusライブラリを使用)。ExcelPackageをMemoryStreamとして保存していて、それを電子メールに添付したいと思います。しかし、私が電子メールを受け取ったとき、Excelファイルは空です-0バイト。

考え?

        MemoryStream outputStream = new MemoryStream();
        using (ExcelPackage package = new ExcelPackage(outputStream)) {

                // export each facility's rollup and detail to tabs in Excel (two tabs per facility)
                ExcelWorksheet facilityWorksheet = package.Workbook.Worksheets.Add(row["facility_id"].ToString());
                ExcelWorksheet facilityDetail = package.Workbook.Worksheets.Add(row["facility_id"].ToString() + "-detail");

                facilityWorksheet.Cells.LoadFromDataTable(rollupData, true);
                facilityDetail.Cells.LoadFromDataTable(rawExceptions, true);

                package.Save();
        }

メールの添付ファイルを作成するためのコードは次のとおりです。

Attachment attachment = new Attachment(outputStream, "ECO_exceptions.xlsx", "application/vnd.ms-excel");
4

1 に答える 1

37

さらに検索した後、私は解決策を見つけました。どうやら、私はそれを添付ファイルとして渡す前に、MemoryStreamの開始位置を明示的に設定する必要がありました。次のコード行でうまくいきました。

outputStream.Position = 0;
于 2012-10-11T20:51:18.587 に答える