問題タブ [openxml-powertools]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
367 参照

c# - OpenXML SpreadsheetDocument SaveAs() でファイル使用中のエラーが発生する

ASP.Net Core Web アプリから呼び出された OpenXMLPowerTools v4.5.3.2、DocumentFormat.OpenXML v2.9.1 を使用して、Excel スプレッドシートを動的に生成しようとしています。

スプレッドシートを正常に生成できることを確認しました。

問題は、スプレッドシートを生成する必要があることです...そしてそれをMEMORY STREAMとして返す必要があります(したがって、ASP.Net Core Webコントローラー

HCExcelReport.cs:

数え切れないほどのことを試しました...

... しかし、PowerTools を使用する場合、代替手段が見当たりませんdoc.SaveAs()...

... を使用するdoc.SaveAs()と、Web アプリが終了するまで、ファイルは「使用中」のままのようです。

Q: 何か提案はありますか?

0 投票する
0 に答える
661 参照

powershell - Open-XML-PowerTools のセットアップ方法

Open-XML-PowerTools を使用しようとしています。そして、powershellコマンドラインで実行したいと思います。ただ、セットアップがうまくできていなかったようで、実際に使えるところまでには至っていません。アドバイスをいただけますか?

私がやったこと:

Github ページの Build Instructions に従ってみました。 https://github.com/OfficeDev/Open-Xml-PowerTools/tree/master

  1. ディレクトリの下のgit clone https://github.com/EricWhiteDev/Open-XML-SDK (マスター): C:\Users\user\Documents\WindowsPowerShell\Modules

    また、「Visual Studio 2019」ディレクトリは以下の場所にあります。

    C:\Users\user\Documents\Visual Studio 2019

    したがって、「WindowsPowerShel」ディレクトリとして兄弟です。

  2. git clone https://github.com/OfficeDev/Open-Xml-PowerTools/tree/master (マスター) を 1 と同じディレクトリに作成します。つまり、C:\Users\user\Documents\WindowsPowerShell\Modules

  3. プロジェクトディレクトリ「Open-XML-SDK」にある Open-XML-SDK.sln を Visual Studio 2019 (Microsoft Visual Studio Community 2019 Version 16.6.5) で開きます。ソリューションをビルドしてから、テスト エクスプローラーから "test all" を実行します。

  4. Visual Studio 2019 でプロジェクト ディレクトリ「Open-XML-PowerTools」にある Open-XML-PowerTools.sln を開きます (上記と同じ)。ソリューションをビルドしてから、テスト エクスプローラーから "test all" を実行します。

  5. PowerShell ISE を管理者として起動し、Set-ExecutionPolicy を Unrestricted に設定してください。

  6. PowerShell から、「Import-Module Open-XML-PowerTools」を配置します。ただし、次のようなエラーが発生します。

ここで、モジュール ディレクトリに有効なモジュール ファイルが見つからなかったため、指定されたモジュール 'Open-Xml-PowerTools' は読み込まれませんでした。発生場所 行:1 文字:1「モジュール ディレクトリに有効なモジュール ファイルが見つからないため、指定されたモジュール 'Open-Xml-PowerTools' が読み込まれませんでした。出現場所 行:1 文字:1」を意味します。

0 投票する
1 に答える
137 参照

c# - 変更された Word 文書がメモリストリームに保存されない

Microsoft Graph API をストリームとして使用して SharePoint から Word 文書を取得し、そのファイルの一部のコンテンツを変更して、保存されたコンテンツをファイルとしてダウンロードしていますが、ファイルを開くと、変更されたコンテンツが利用できません。ダウンロードしたファイルには、まだ元のコンテンツが表示されます。

上記のコードからバイト配列を取得したら、コントローラーからこの行を使用してファイルをダウンロードしています

私は何を間違っていますか?

0 投票する
1 に答える
562 参照

c# - PresentationDocument オブジェクトからバイト配列またはストリームを取得する方法

PowerPoint ファイルを細かく分割する Open Office XML コードがあります。

Open XML SDK の性質上、このコードの多くはファイル システム上のファイルを読み書きします。目標は、これらの一時ファイルを完全に削除し、バイト配列やインメモリ ストリームに置き換えることです。

このコードの一部は、異なるスライド ソースからの PowerPoint を結合します。このコードの例を次に示します。PowerPoint プレゼンテーションを含むデータベースを想像してみてください。 PmlDocumentOpen XML Power Tools のクラスです。

は新しい PowerPoint PPTXbyte[] dataを表し、これをデータベースに保存し直すことができます。

この例では既にバイト配列を扱っているため、このコードは問題なく動作します。問題は、オブジェクトを処理する必要があるときに発生しPresentationDocumentます。私たちのプログラムでは、これらのオブジェクトを使ってすでに大量の処理が行われています。そのようなオブジェクトからバイト配列を取得する現在の方法は、次のようにすることです。

これは私が望むものではありません。

残念ながら、からバイトを抽出するより良い方法はないようPresentationDocumentです。MemoryStreamおそらくオブジェクトを使用して、メモリ内でこれを行う方法を知っている人はいますか?

注: OfficeTalk: Working with In-Memory Open XML Documents を読みましたが、適切なドキュメント形式のバイト配列が既にあると想定しているようです。