問題タブ [openxml]
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.
c# - OpenXMLSDKを使用してExcelスプレッドシートにセルコメントを作成する
Excel2007スプレッドシートのセルにコメントを追加しようとしています。私はOpenXmlSDK2.0を使用しています。
私の使用例は次のとおりです。OpenXMLドキュメントを最初から作成するのではなく、コピーして開始点として使用するテンプレートExcelファイルを作成しました。テンプレートファイルのセルA1にコメントがあるため、ExcelですでにWorksheetCommentPartが作成されています。
今私の問題は、コメント部分にコメントノードを追加すると、スプレッドシートが読み込まれず、Excelが回復するかどうかを尋ねるということです。
本当に気になるのは、A1の元のコメントがまだ残っているのに、プログラムで追加したコメントがなくなってしまったことです。
これが私が使っているコードです:
using(MemoryStream SpreadsheetStream = new MemoryStream()){GetGradebookSpreadsheetTemplate(spreadsheetStream);
}
また、「CreateUserDataRow」は新しい行を作成しますが、関連する部分は次のとおりです(「comment」はコメント文字列、「c」はコメントを作成するセル):
私の目で見る限り、そしてそのことについてはKDiff3で、私のファイルは、Excelを開いて、Excelで手動でセルにコメントを入れた場合に出力されるファイルとほとんど同じです。
OpenXmlを使用してセルにコメントを添付する良い例はありますか?多分関係について私が知っておくべきことはありますか?作成したExcelファイルをテンプレートとして使用していることと関係がありますか(一部のディメンションが設定されていない可能性があります)?
私が得ることができるどんな助けにも感謝します。
c# - asp.netを使用してExcelドキュメントを作成およびダウンロードする方法
asp.net を使用して Excel ドキュメントを作成およびダウンロードするにはどうすればよいですか?
目的は、xml、linq などを使用して、ブラウザー経由で顧客に Excel ドキュメントを送信することです。
編集:ユースケース
顧客がブラウザにグリッドビュー (ajax フレームワークで作成) をロードすると、グリッドビューは直接 SQL データベースにリンクされます。「Excel にエクスポート」ボタンを配置して、顧客がこのグリッドビュー データを自分のコンピューターに保存できるようにし、Excel のクリーン ダウンロードを開始したいと考えています。
ここで提案されている解決策は、html ドキュメントを送信してヘッダーを Excel ドキュメントに変更するなど、きれいではありません。現在、codeplex で簡単な解決策を探しています。お知らせします。
guid - DOCX (Open XML WordprocessingDocument) の一意の ID に最適な場所
DOCX ファイルが移動または名前変更された場合にそれらを識別する方法を探しています。理由は明らかです。私は Open XML SDK をいじり、ハイパーリンク チェッカーを構築しています。
完璧に機能します。少なくとも、ドキュメント内のハイパーリンクを追加または更新できます。
ただし、問題は、外部ファイルの名前を変更すると (source.docx + target.docx から targetB.docx に) リンクが壊れることです。壊れたリンクを見つけることができます (リンクされたファイルが所定の場所にあるかどうかを確認するだけです)。
でももっと欲しい。ディレクトリ(docx)内のすべてのドキュメントを検索し、それらが「ターゲット」であるかどうかをスキャンすることにより、この失われたリンクを回復できるようにしたいと考えています。最も簡単な方法は、ドキュメント プロパティのどこかに GUID を保存することです。この GUID は、ドキュメントの名前が変更されたり編集されたりしても変更されません (チェックサムは適用されません)。
次に、リンクとそれに応じた ID の個別のリストを作成し、ドキュメントの名前が変更された場合は、リンクを更新するだけです。コンセプトが明確であることを願っています。
したがって、いくつかの基本的な質問があります。
- この「カスタム情報」を Open XML ドキュメントに保存するための「ベスト プラクティス」はありますか
- ワードプロセッシング ドキュメント (DOCX) には、Word によって作成された一意の識別子が既に含まれていますか?
- マッピングを保存する場所 (ハイパーリンク ターゲットの GUID)
質問が明確であることを願っています。明確にしようとしない場合は、質問があればコメントしてください..
ありがとう、クリス
xml - T-SQL OpenXML が特定の文字でバストするのはなぜですか?
SQL Server で実行している次の XML がありますが、壊れます。なぜですか?
powerpoint - コード/スクリプト/定義を使用して、PowerPointでカスタムシェイプまたはコネクタを作成します
PowerPoint 2007の図形は組み込まれているようです-「ユーザー」/「カスタム」図形を作成する方法はありますか?
カスタムコネクタを作成したかったのですが、カスタムシェイプを作成できるかどうかを知ることは、将来的に役立つ可能性があります。
c# - Open XML SDK を使用した差し込み印刷
3 つの列 (a、b、c) を持つ DataTable と、対応する MailMerge フィールドが設定された docx ファイルがあります。私がやりたいことは、データを含むドキュメントに対して差し込み印刷を実行することです。
ハードディスクに書き込むことができると仮定します (マージなどを行うために csv などを作成する必要がある場合) 。Word や Excel などはありません。Open XML SDKがインストールされていますが、他のものも同様にインストールできます。
答えとしては、入力データを必要なものに変換することは実際には問題ではありません。問題は、Open XML SDK (またはその他の無料 API) でメール マージを実行する方法です。
補足として、出力は n ページ (n はデータの行数) の 1 つのファイルである必要があります。つまり、n 個のドキュメントではありません (ただし、ドキュメントのマージが最後に行われるかどうかは気にしません)。
(私は追加する必要があります、私はMailMergeの概念に縛られていません.たとえば、単に置換を行うことができればうまくいきます.
c# - テンプレートからPowerPoint2007プレゼンテーションを作成する
Open XML FormatSDK2.0を使用してテンプレートからPowerPoint2007プレゼンテーションを作成する必要があります。テンプレートは顧客が提供する必要があり、個々のレイアウトスタイル(フォント、背景色、画像など)に使用されます。2つの事前定義されたスライドが含まれている必要があります。
- テキストスライド
- 画像スライド
これで、アプリケーションはテンプレートファイルのコピーを作成し、テキストスライドと画像スライドの複数のコピーを作成し、コンテンツプレースホルダーをいくつかのコンテンツに置き換える必要があります。
スライドのタイトルを編集したり、それらを削除したり、スライド上の画像を置き換えたりするためのMicrosoftのコードスニペットをすでにいくつか見つけました。しかし、既存のスライドのコピーを作成する方法がわかりませんでした。多分誰かがこれで私を助けることができます。
sharepoint - SPFile インスタンスが変換されたファイルであるかどうかを正確に判断する方法は?
私は、MOSS 2007 を使用して docx ファイルを pdf ファイルに変換するためのドキュメント変換機能に取り組んできました。 SPFile.Convert() 呼び出しは ItemAdded イベントで行われ、ItemFileConverted イベントも正常に発生します。イベンティングは正常に機能しているように見えますが、変換された SPFile インスタンスの IsConvertedFile および SourceLeafName プロパティは、変換プロセスによって常に設定されるとは限りません。これは、SPFile.Convert を呼び出す必要があるかどうかを判断するために使用しようとしていたものです。
SPFile IsConvertedFile、GeneratingConverterId、および SourceLeafName プロパティのコードを掘り下げると、これらは SPFile.Properties "vti_dttransformerid" および "vti_dtparentleafname" に基づいているようです。問題は、ISPConversionProcessor.PostProcess() 実装にファイルの後処理を行うコードがある場合は常に、これら 2 つのプロパティが一貫して設定されないことです。PostProcess メソッドにコードがない場合 (runDefaultPostProcessing = true; ステートメントのみ)、プロパティはより一貫して設定されます。
Wiki ページに何が起こっているかについての追加の詳細がありますが、.NET Reflector を使用して、これらのフィールドがどこで更新されたかを判断すると、OWSTIMER.EXE のレンガの壁にぶつかります (プロパティのすべての読み取りを見つけることができましたが、 HtmlLauncher および LoadBalancer サービスでさえ、これらのプロパティについて言及していませんでした)。
完全なドキュメント変換の実装を行い、SPFile.IsConvertedFile および SPFile.SourceLeafName プロパティを正常に使用した人はいますか?
c# - OPENXML スプレッドシートのセル内に改行を挿入するには?
私は現在、セルにインライン文字列を挿入するために次のようなものを使用しています:
しかし\n、改行を挿入することはできません。どうすればよいですか?
応答
.net - プログラムによる _AssemblyLocation の VSTO Excel ブックからの読み取り
Visual Studio Excel Workbook プロジェクトがあります。ワークブックをパブリッシュし、ワークブックのソースを調べると (WinZip を開いて custom.xml を確認します)、パブリッシュ パスに対応するタグ _AssemblyLocation が表示されます。
.NET コードから _AssemblyLocation を読み取る方法はありますか?
パブリッシュ パスを読み取って、サーバー名に基づいて現在の環境 (開発/品質保証/運用) を判断できるようにしたいと考えています。