問題タブ [netoffice]

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 に答える
145 参照

c# - xll が永続的にインストールされているかどうか、または xll ファイルがアドホックに開かれたかどうかを検出しますか?

ExcelDna と NetOffice を使用して Excel 用のアドインを作成しています。

Excel のアドインは、インストールしてすべての Excel セッションに含めるか、xll ファイルを開くだけでアドホックに開くことができます。

アドイン コードがアドホックに開かれたか、インストールされたかをプログラムで検出する方法はありますか?

0 投票する
2 に答える
1173 参照

c# - Excel のユーザー定義関数がスプレッドシートの呼び出しをロックする

NetOffice を使用して Excel スプレッドシートを編集しています。Excel のユーザー定義関数からコードを呼び出すと、呼び出し元のスプレッドシートを編集できません。

これを可能にする回避策はありますか?

例外は

"System.Runtime.InteropServices.COMException (0x80004005): 詳細については内部例外を参照してください。 ---> System.Reflection.TargetInvocationException: 呼び出しのターゲットによって例外がスローされました。 ---> System.Runtime. InteropServices.COMException: HRESULT からの例外: 0x800A03EC --- 内部例外スタック トレースの終わり --- System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters) at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) at System.Type.InvokeMember(String)名前、BindingFlags invokeAttr、バインダー バインダー、オブジェクト ターゲット、Object[] args、CultureInfo culture) の NetOffice.Invoker.PropertySet(COMObject comObject, String name, Object[] value) at NetOffice.Invoker.PropertySet(COMObject comObject, String name, Object[] value) at NetOffice.ExcelApi.Range.set_Value(Object value) ) \psf\home\Documents\Visual Studio 2013\Projects\Excel-REPL\Excel-REPL\Example01.cs の ExcelExamplesCS45.Example01.RunExample(): \psf\home の ClojureExcel.MainClass.Test() の 29 行目\Documents\Visual Studio 2013\Projects\Excel-REPL\Excel-REPL\MainClass.cs: 310 行目"\psf\home\Documents\Visual Studio 2013\Projects\Excel-REPL\Excel-REPL\MainClass.cs:line 310 の ClojureExcel.MainClass.Test() の 29 行目"\psf\home\Documents\Visual Studio 2013\Projects\Excel-REPL\Excel-REPL\MainClass.cs:line 310 の ClojureExcel.MainClass.Test() の 29 行目"

0 投票する
3 に答える
2192 参照

c# - メールアイテムをループするメモリ不足

こんにちは、いくつかの簡単な検索トリックを実行する Outlook com アドインがあります。組み立ての途中ですが、メモリ不足の問題が発生しています。プロセスは非常に単純で、基本的に Outlook フォルダーをループして、各 mailItem が一致するかどうかをチェックします。ループが変数を再初期化すると、ガベージコレクターが追いつくと予想されるたびに変数が再初期化されますが、メモリを監視すると、システムがメモリ不足になり、未処理の例外が発生するまで、メモリは約 10m/秒失われます。

これはコードの一部です

どの呼び出し

下部にあるすべてのエラーキャッチ部分と GC.collect は、何が問題なのかを突き止めてメモリを解放するための私の試みの一部であることをお許しください。

また、FindInFolder は新しいスレッドによって呼び出されるので、検索を続けながら結果を操作できることに注意してください。

私がこれまでに試したこと:

変数をクラスではなく関数に対してローカルにして、G で取得できるようにしますが、「item」で最も使用される変数は foreach の一部であるため、そのように宣言する必要があります。

1000 個の mailItem ごとに手動 GC が実行されますが、これはまったく違いがありませんでした。

何らかの理由で、アイテムをループするだけで大​​量のメモリが必要になり、GC はアイテムを解放しません。

Comアドイン用のVSTOではなく、netofficeを使用していることにも注意してください。

0 投票する
2 に答える
204 参照

c# - 新しいワークシートをインスタンス化する方法

NetOffice.ExcelApi.Worksheet追加のフィールドを含む「カスタム」ワークシートが必要なので、クラスをサブクラス化したいと思います。この新しいクラスのインスタンスの構築の一環として、基本クラスのコンストラクターを呼び出したいと思います。つまり、基本的にはレギュラーWorksheetが必要ですが、いくつかの追加フィールドを設定し、それにいくつかの追加機能を持たせる必要があります。

と 新規 を作成するにはどうすればよいWorksheetですか? これまでのところ、クラスのAddメソッドのみを使用してきました。このメソッドはSheets自動的にこれを行い、それをシートに追加します。私が知る限り、Worksheetクラスのコンストラクターは親オブジェクトを取得する必要があり (取得するのに問題はありません)、COM プロキシが渡されます。これを行うにはどうすればよいですか?

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

c# - 64 ビットの Office 2013 インストールで NetOffice アドインがロードされない

私は NetOffice を使用してマルチ アドインを構築しました。Office の 64 ビット インストールで問題なく動作します。このすべてのレジストリ エントリが正しい場所にあることを誰もが知っていますが、それでもパスが空の非アクティブなアドイン リストに表示されています (添付の画像を参照)。 場所が空です

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

c# - NetOffice を使用してシートに行を追加する

私は

メインシートに新しい行を追加するにはどうすればよいですか? そのための NetOffice 関数が見つかりません。

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

wpf - ネストされたテーブルを取得しますが、個別のテーブルが必要です (Netoffice、Word)

いくつかのテーブルを含む Word ドキュメントを印刷する WPF アプリケーションを作成しましたが、機能しますが、個別のテーブルではなくネストされたテーブルが表示されます。

私は別の投稿を見ていましたが、それらはすべてうまく機能しませんでした。

また、Wordでマクロを記録しようとしたところ、

そして私はこれを次のように変えました:

あるいは:

これは私の元のコードの始まりです:

これは最初のテーブルです:

これは 2 番目のテーブルですが、テキストは最初のテーブル (最後のセル) の最後のセルに入ります。

更新しました。6月17日午後9時

カーソルをテーブルの外側に置くものを見つけましたが、それはファイルの先頭にあります。これはすべきではありません:

更新しました。6月17日午後9時30分

このステートメントを置く場所によっては、「InsertAfter」を使用しても機能しますが、それでも問題は解決しません。

これは、私が見つけた2つのことを組み合わせて、「wordApplication.Selection.Range」をある種の「InsertAfter」に調整する必要があります。

更新 18.06 07:30 午前

これを使用すると、「ComException」が発生します(マクロレコーダーがこれを示しました):

18.06 07:45 午前更新

それから私はこれを見つけまし、これは私の目的にかなり近いです(しかし、前のテーブルの最後のセルを置き換えます):

前もって感謝します :)