問題タブ [closedxml]
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# - OpenXML を使用してテーブルからスプレッドシートを生成する
目標:表に基づいて名前が付けられたワークシートと、各ワークシートの最初の行に列名がリストされたスプレッドシートを生成します。これらは実際には、これらのテーブルから構築されたクラスに基づいています。
問題:スプレッドシートを開くと、「読み取れないコンテンツ」が見つかったと表示され、復元するかどうか尋ねられます。はいを選択すると、スプレッドシートは完全に復元されますが、ユーザーはこれを行う必要はありません。
観察: SDK を使用すると、スプレッドシートの内部動作を確認でき、ワークシートの xml 名が実際の問題であることに気付きました。最初にダウンロードされたバージョンでは、Sheet1 から Sheet9 という名前が付けられていますが、Sheet1a から Sheet1f に移動します。したがって、基本的には 16 進数の 1-f で番号を付けます。私がそれを修復した後、彼らは名前を純粋な数値に修正しました。
画像が表示されるかどうかわかりませんが、私の作品がサイトをブロックしているようです :/
注:コードを確認しましたが、これらの内部 xml シートに具体的に名前を付けることができる場所がどこにもないため、どのコードを共有すればよいかわかりませんが、これらのシートを作成しているコードのセクションを投稿しています。
スプレッドシートを作成するメソッド:
ワークシートを作成するメソッド:
c# - Excelブックで「共有」オプションを有効にするにはどうすればよいですか?
OpenXMLまたはClosedXMLを介してExcelドキュメントで「共有」を有効にすることは可能ですか?または、他のライブラリが役立つ場合は...これは通常、ドキュメントを保存するときに実行されると思います(少なくとも、VBAではこのように機能します)が、C#で保存引数を指定する方法が見つかりません。
ネットワークを介して複数のファイルでこのプロセスをバッチ処理する可能性があるため、InterOpの使用は避けたいと思います。
編集: 2009年の古いページによると、OpenXMLが保護されたファイルを操作できないという制限があります。しかし、それは共有にも当てはまりますか?
c# - ClosedXML 大文字と小文字を区別する列ヘッダー
例として、私はそのようなコードを持っています:
作成したばかりのファイルを開くと、「Excel が Excel.xlsx で判読できないコンテンツを検出しました ....」という警告が表示されます。
このアラートを確認すると、「大文字と小文字を区別する」列に「2」が自動的に追加されます。
この問題をどのように解決しますか?
asp.net - 既存のExcelテーブルに新しい行を追加してもグラフは更新されません(名前付き範囲を使用する必要はありません)
私はclosedXMlとExcelの使用にも(少なくともこの目的のために)本当に新しいので、ばかげた質問をしている場合は申し訳ありません。
closeXMLはまだグラフをサポートしていないことを知っているので、これを回避するために頭に浮かんだのは、Excelテーブルを使用してグラフを作成することだけでした。そうすれば、新しい行を挿入したときにClosedXMLが範囲を更新し、グラフがそれを取得すると思いました。まあ、そうではありませんでした。少なくとも、closedXMLライブラリを使用してコードから行を追加する場合はそうではありません。
興味深いのは、Excel内から新しい行を追加するとグラフが自動的に更新されることですが、コードから同じ結果を取得する場合は、名前付き範囲とともにOFFSET数式を使用してから、グラフのソースデータをこれらの名前付き範囲に設定する必要があります。そのため、新しい行を挿入するために使用するコードに問題があるかどうかを知りたいのです。
ご覧のとおり、コードは非常に単純であり、テンプレートも非常に単純です。このテンプレートは、「Year」(table1 [Year])と「Sales」(Table1 [Sales] )の2つの列のみで構成されています。
私が言ったように、Excelから直接新しい行を追加することは期待どおりに機能し、チャートシリーズに新しい行が含まれないのはコードからテーブルを生成するときだけなので、これは私のテンプレートとは何の関係もないと思います追加された
最初の行(テーブルを挿入するときにデフォルトで追加される行)のみが含まれるため、新しい範囲( Sheet1!Table1 [Sales]およびSheet1!Table1 [Year])
を手動で追加する必要があります。
どんな助けでも大歓迎です
PSこれは、完全なコードとExcelテンプレート(\ Templates \ MyTemplate.xlsx)を含むRARへのリンクです。
c# - ClosedXmlを使用して数式セルのテキストをExcelで折り返す方法
問題は、そのセルに長い文字列を持つセルを参照する数式が含まれている場合、セルの内容がラップされないことです。
CodePlexで、この問題に関するスレッドと、問題を確認するための簡単なコードを見つけました。
また、セルをラップする代わりに、行の高さを手動で設定しようとしました:
しかし、どちらも成功しませんでした。
これについて私にできることはありますか?
ピーター・アルバートのコメントに従って、セットの行をAutoFit
. ClosedXMLでこれを行うために私が見つけた唯一のものはworkSheet.Row(3).AdjustToContent();
. しかし、これもうまくいきませんでした(特定の列の内容を調整することもできませんでした)。
excel - ClosedXML でピボット テーブルを作成する方法の例
ClosedXML を使用して .XLSX スプレッドシートを生成しています。これは、小さく、機敏で、迅速であるためです。ピボット テーブルのクラスとメソッドはすべて API に含まれているようですが、ピボット テーブルを (正しい順序で) 作成する方法に関するドキュメントや例はありません。私たちが推測しようとした結果、開いたときに XML の破損に関するエラーが発生し、Excel がピボット テーブルを削除するように要求するファイルが作成されました。
c# - 小数部分がゼロの場合、小数点記号を削除する方法は?
ClosedXMLを使用して Excel スプレッドシートを作成しています。この問題は、パーセンテージを含むセルの書式設定中に発生します。
私が思いついたフォーマットは0.##%
.
小数部分がゼロでない場合にうまく機能します1,15%
。ただし、整数値の場合は、小数点を表示したままにし、ゼロを非表示にします。たとえば、次のようになります5,%
。
小数点記号も非表示にするにはどうすればよいですか?
これは、問題を示す小さなプログラムです。
そして出力は
image - ClosedXML 画像を追加
OpenXML を使用して、Excel スプレッドシートに画像を追加できます。ただし、プログラムの残りの部分では、ClosedXML を使用してデータを追加します。列と行のインデックスを使用して、特定のセルにデータを追加できます。画像をExcelに追加できる場合(現在、セルの上にカーソルを置いているように見える別のレイヤーです)、ClosedXMLを使用してセルに追加するにはどうすればよいですか?
これは私が使用したコードで、どこかのスタック オーバーフローで見つけました。画像に MemoryStream を使用するように変更しました。最初に私が抱えている問題の 1 つは、メソッドにスプレッドシート ドキュメントを渡すことですが、これを修正するために ClosedXML で何ができるかわかりません。理想的には、私は簡単に言いたいです
助けてくれてありがとう!