1

これを参考にPowerPointファイルを作成し ています。ユーザーは、多くの基準に基づいて他のユーザーを検索できます。ユーザーに基づく情報は、PowerPoint ファイルに保存されます。しかし、すべての PowerPoint ファイルをサーバーに保存することはできません。

そのため、ユーザーはリンクを右クリックし、[名前を付けて保存...] を選択して、ファイルをローカルに保存する必要があります。

サーバーには何も保存しないでください。私はグーグルで検索しましたが、何を探すべきかわかりません。良いチュートリアルを教えてください。

私は悪いグーグルのようです。検索文字列から「パワーポイント」を削除したところ、多くのヒットがあります。それでも、どんなコメントでも大歓迎です。

4

1 に答える 1

2

ファイルをストリームとして取得し、open xml sdk を使用して開く必要があります (Open XML SDK が必要です:こちら)。

Open XML SDK に慣れていない場合は、既に参照したブログから引用したこちらのブログ投稿も参照してください。

以下のコードは、Open XML SDK with ASP.NET を使用してレポートを作成し、クライアントに送信する方法のサンプル コードです。お役に立てば幸いです。

public void SendReport()
{
    using (Stream stream = GetReportStream())
    {
        stream.Position = 0;
        byte[] buffer = new byte[(int)stream.Length];
        stream.Read(buffer, 0, (int)stream.Length);
        System.Web.HttpContext.Current.Response.Clear();
        System.Web.HttpContext.Current.Response.Buffer = true;
        System.Web.HttpContext.Current.Response.AddHeader("Content-Type", "application/pptx");
        System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=Report;");

        System.Web.HttpContext.Current.Response.BinaryWrite(buffer);
        System.Web.HttpContext.Current.Response.Flush();
        System.Web.HttpContext.Current.Response.Close();
    }
}

private Stream GetReportStream()
{
    MemoryStream stream = new MemoryStream();
    using (FileStream file = File.Open(@"TemplateFileLocation", FileMode.Open))
    {
        byte[] buffer = new byte[file.Length];
        file.Read(buffer, 0, (int)file.Length);
        stream.Write(buffer, 0, buffer.Length);
    }
    using (PresentationDocument presentationDocument = PresentationDocument.Open(stream, true))
    {
        // Doing manipulations explained in your reference document link.

        presentationDocument.PresentationPart.Presentation.Save();
    }
    return stream;
}

参照したリンクでソリューション全体をダウンロードして確認することを忘れないでください。

于 2010-09-22T12:14:23.280 に答える