問題タブ [excel-interop]
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# - C#で開いているExcelワークブックにアクセスする
すでに開いているExcelファイルにアクセスする必要があります。物件を調べてみるとそこにあると思ったの.Workbooks
ですが、そうではありません。開いているブックへの参照を取得する正しい方法は何ですか?
編集
次の方法でExcelアプリケーションへの参照を取得できます...
しかし、app.Workbooks.Count
それでも0
、開いているブックへの参照を取得できないのはなぜですか?
c# - C#で既に開いているExcelファイルにアクセスするにはどうすればよいですか?
WindowsエクスプローラーでExcelブックをダブルクリックして開いていますが、コードでアクセスできません
xlBooks.Countは0ですが、開いているブックを参照していないのはなぜですか?
編集
さまざまなシナリオと何が起こっているかを次に示します。
シナリオ1:ファイルがまだ開いていない場合
- コードはワークブックを開きます、私は幸せです。
シナリオ2:ファイルが最初にコードから開かれ、アプリを閉じて再度開いた場合
- コード参照ファイル
xlBooks.Count
は1に等しいだけで、満足しています。
シナリオ3:ファイルがコードからではなく、エクスプローラーでダブルクリックして最初に開かれた場合
xlBooks.Count
コードは0に等しいファイルの別のインスタンスを開きます、私は激怒しています!
これが現在のコード全体です
c# - object[,] を返す C# ライブラリから VBA マクロで EXCEL 範囲をバインドする方法
2 つのメソッドを持つ C# ライブラリがあります。1 つは整数を返し、もう 1 つはオブジェクトを返します[,]
今、私はVBAに非常に慣れていません。いくつかのレガシーな理由により、VSTO ExcelアドインではなくVBAマクロを記述してこのライブラリを呼び出す必要があります。
最初のメソッドから結果を取得するのは簡単でした。アセンブリ com を表示して Com Interop に登録し、VBA プロジェクトに参照として追加して、以下のコードを使用して呼び出しました。
ここまでは順調ですね。次に、2 番目のメソッドを呼び出してデータを取得し、それを Excel にバインドします。
簡単に聞こえますが --> このデータを保持するにはどの型を使用すればよいですか? 動的配列を試しましたが、機能しませんでした --> 動的範囲にバインドするにはどうすればよいですか。2次元配列が100 * 10であるとしましょうRange.value = Array
.C#のExcelアドインアプリケーションでこれを行う方法を知っているような範囲にバインドしたいのですが、VBAは私に本当の問題を与えています.
これに関するどんな助けも素晴らしいでしょう
excel-interop - エクセル相互運用-エクセルコムアドインコードを実行する方法
作成したExcelアドインがあります。私がやりたいのは、c#(ASP.NET)でExcelドキュメントを開き、アドインでコードを実行してから、ExcelドキュメントをHTMLページとして返すことです。
これはできますか?
c# - C#でオブジェクトを2次元配列に変換する
これは単純なはずですが、それを行う方法を見つける方法が本当にわかりません...
.NET4.0を使用しています。object[12]
10進数を入力しましたが、これを使用してExcelの範囲Double
s[1,12]を入力したいと思います。私はJSONを使用して変換していますJavaScriptSerializer
:
ワンライナーである必要がありますが、私が思いつくことができる唯一の作業は次のとおりです。
またはそれでもかなり哀れですが、少なくとも1行で:
私はそのようなものが機能することを期待しますが、私が収集したものから、初期化子はこのようには機能しません:
私にはかなりの数の同様のケースがあり(おそらくもっと難しいかもしれない[12,1]のケース)、それぞれにそれほど苦労したくありません。もう少し簡単に書く方法はありますか?
memory - Microsoft.Office.Interop.ExcelでExcelファイルを解析します-メモリにExcel.exeプロセスをぶら下げます
こんにちは私はMicrosoft.Office.Interop.ExcelでExcelテーブルを解析します。これがExcelテーブルをデータテーブルに解析する私のコードです。それはうまくいきます。
問題アプリ(コンソール)を実行すると、このメソッドが呼び出され、コンソールアプリが閉じます。TaskManagerプロセスをチェックインすると、Excel.exeプロセスがまだ実行されていることがわかります。
このメソッドを100回呼び出すと、メモリ内に100個のexcel.exeプロセスがあります。
正常ですか?どのようにそれを解決することができます。
お手数をおかけしますが、よろしくお願いいたします。
c# - Excel 相互運用の代替
C# アプリケーションの 1 つに Microsoft から提供されている Excel 相互運用機能アセンブリの使用を開始しました。順調に進んでいますが、強いタイピングが不足しているようで、正直VBAコードを書いているような気がします。C# から Excel を操作して、OO エクスペリエンスを向上させる別の方法はありますか? ちなみに、VS2010と.Net 4.0を使用しています。
asp.net - {"HRESULTからの例外:0x800A03EC"} at Microsoft.Office.Interop
ASP.NetWebアプリケーションで以下のコードを使用してExcelファイルを作成しようとしています。
Visual Studioから実行するとコードは正常に機能しますが、例外が発生します。ワークブック。IISにアプリケーションを展開し、展開されたバージョンを実行すると、コマンドを閉じます。
c# - HRESULT: Worksheet.range の 0x800A03EC
Worksheet.range メソッドで HRESULT: 0x800A03EC を取得しています。行数が 70K を超えています。オフィス 2007。
コード:
ここで、行数は 65530 を超えています。この機能を中断します。行数が 65530 を超えた場合にのみ壊れることを確認しました。
c# - Microsoft Office Excel がファイル 'c:\inetpub\wwwroot\Timesheet\App_Data\Template.xlsx' にアクセスできません
私は次のように私のコードを持っています:-
今行のために:-
Visual Studio (F5) から直接実行されますが、IIS でアクセスしようとすると機能しません。次のようにエラーをスローします:-
Microsoft Office Excel は、ファイル 'c:\inetpub\wwwroot\Timesheet\App_Data\Template.xlsx' にアクセスできません。いくつか
の理由が考えられます。 • ファイル名またはパスが存在しない。
? ファイルが別のプログラムによって使用されています。
? 保存しようとしているブックは、現在開いているブックと同じ名前です。
私は次のように回避策を試しました:-
- フォルダーとファイルが存在し、ファイルがあるフォルダー内の IUSR_### (IIS ユーザー) と ASPNET ユーザーにアクセス権を付与します。
- コンポーネント サービス (DCOM) で、適切なユーザーにアクセス権を与えます。
テンプレート (.xlsx) が存在するフォルダーにすべてのアクセス許可を既に与えています。
助言がありますか??