問題タブ [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# - 名前を付けて保存ダイアログボックスで、作成したExcelインスタンスをクライアントのディスクに保存する方法
プロジェクトでユーザーがボタンをクリックすると、一部のデータが取得され、相互運用ライブラリによって Excel インスタンスに書き込まれます。
今、私はそれをしたい: Excel インスタンスがすべてのデータを取得したら、[名前を付けて保存] ダイアログ ボックスを開いて、この Excel インスタンスをユーザー指定のパスに保存する必要があります。
それを行う方法はありますか?
編集:
データをExcelに取得するための私のコードは次のとおりです。
c# - C#でExcelシート名を動的に名前変更する方法
sheet1、sheet2などの多くのシートを含むExcelワークブックを作成しました。C#でこれらのタブ名の名前を動的に変更するにはどうすればよいですか?
c# - Excel Interop 右から左へのドキュメント
C# で新しい Excel ファイルを作成しました。
ドキュメントを開くと、すべてのワークシートが右から左に配置されます。
ワークシート/ワークブック/ウィンドウを文法的に左から右に表示するにはどうすればよいですか?
c# - C# Excel への自動化
...
...
クラッシュ時にこれを生成します:
この場合、60行目は
oSheet = (Excel._Worksheet)oWB.Sheets[1];
行が書かれている場合、同じことが起こります
oSheet = (Excel._Worksheet)oWB.ActiveSheet;
.
その時点で、Excel は既に画面上で開いており、新しいワークシートが配置されています。
asp.net-mvc - Excel 相互運用 + MVC
MVC アプリ内で Excel Interop を使用しても安全ですか?
c# - C# で Timespan を DateTime に変換する
C# と Microsoft.Office.Interop を使用して Excel ワークシート データを読み込んでいます。シートにはいくつかの日付値が含まれています。その値を読み取ろうとすると、数値が表示されます (おそらく TimeSpan)。この数値を DateTime に変換する際に問題が発生しています。
以下はコードです:
はどこws
ですかExcel.WorkSheet
。
TimeSpan
この数値 ( ) をに変換する方法を説明できる人はいますDateTime
か?
貴重な時間を共有していただきありがとうございます。
.net - 動的コレクションに関する.NET4.0Excelの相互運用の問題
System.Object[*]
Excelでは、を使用して系列オブジェクトから動的配列を返すことができますXValues
。.NET 3.5では、このオブジェクトを配列にキャストすることで、このオブジェクトの要素にアクセスできます。
.NET 4.0では、これは機能しなくなり、メッセージが表示されます
「タイプ'System.Object[*]'のオブジェクトをタイプ'System.Object[]'にキャストできません」
与えられます。
何か案は?以下は機能しません。
- ダイナミックとしてキャストします。
- にキャストし
System.Object[*]
ます。 - オブジェクトをforeachループに配置するだけです。
values[1]
ダイナミックとしてキャストする場合でも、を使用して値に直接アクセスしようとしています。
ただし、配列内の値はデバッガーに表示されます。
c# - Excel 相互運用を使用してセル値を設定する
わかりましたので、Excel 相互運用ライブラリを使用してセルの値を設定しようとしています。私は以下でそれを行うことができます:
しかし、私が設定している数に対しては非常に遅いです。だから私はこのルートに行こうとしています:
コードは実行されますが、セルにデータが入力されません。私が欠けているものについて何か提案はありますか? ありがとう!
c# - Excel Interop 2007 の条件付き書式
Excel相互運用2007でセルの表示形式を取得するにはどうすればよいですか。フォントの太さが別のセルの値に依存するセルがあります。条件が満たされているかどうかに関係なく、cell.Font.Bold および cell.Style.Font.Bold プロパティは常に false です。(セルは範囲型です)。ユーザーが Excel で表示するように、セルのスタイルを照会する方法はありますか?
FormatConditions も使用してみましたが、条件が満たされているかどうかを知る方法が見つかりませんでした。
乾杯
ウーリー
.net - myWorksheet.Range.Resize.Value = 行数が多いと配列が失敗する
Office.Interop.Excel を使用してスプレッドシートにデータを挿入する大規模なプロジェクトを継承しました。
目に見える相互作用に関して言えば、ボタンをクリックすると、すべてのデータが既に挿入された Excel スプレッドシートが表示されます。これについて言及するのは、プログラムが既に開いていて、値が挿入されている状態で他の場所で実行されているのを見たからです。私が使用しているプログラムは、Excel が表示される前にデータを挿入します。
残念ながら、比較的大量のデータが挿入されると、Excel への情報転送がロックされ、プログラムを続行できなくなります。
とにかく、私はいくつかの調査を行い、次の行を見つけました。
これにより、dataArray 内のすべてのデータが、ワークシート内の一連のセルに直接コピーされます。
このような大量のデータを一度に転送しようとすると問題が発生する可能性があると推測したため、行ごとにデータをコピーするように変更しました。
これにより、約 350 行が Excel にコピーされ、行の設定値が単に返されなくなります。
誰でもこれを回避する方法を提案できますか?
編集:さて、私はラザロが以下に提案したことをたくさん試しました。そして、これが私が今いるところです:
データが比較的短いか、データ型がかなり単純 (整数など) である限り、コードのすべてのバリエーションが正常に機能します。データセットが小さいか単純である限り、元の大量コピーは正常に機能し、行ごとのコピーは機能し、セルごとのコピーも機能します。
ただし、実際のデータセットは比較的複雑で、文字列を含むいくつかのデータ型が含まれています。
350行程度で倒れます。コードの Excel 側に落ち、スレッドは Excel に移動し、二度と戻ってきません。
それで、他のアイデアはありますか?