問題タブ [spreadsheetlight]

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 投票する
0 に答える
526 参照

.net - Excel フォーム コントロールの作成 - ボタン

次の 3 つのライブラリを使用して XLSM ドキュメントにアクセスするプロジェクトがあります。

  • XMLを開く
  • クローズド XML
  • スプレッドシート ライト

マクロが割り当てられるフォーム コントロール (ボタン) を作成したいと思います (VBA で作成したパブリック関数のみ)。

どうすればいいですか?あるライブラリは別のライブラリよりも優れていますか? (または、Open XML 以外でやらせてくれるものはありますか)

誰かが特定の構文を使用している場合、私はC#を使用しています:)

0 投票する
4 に答える
12865 参照

c# - スプレッドシートライトでC#を使用してセルのフォーマットタイプを取得する方法

C# を使用して Excel シート (.xslx) の値を読み取るために、spreadsheetlight ライブラリを使用しています。

次のコードを使用してセル値を読み取ることができます

セル値を取得しています。しかし、どうすればセルのデータ型を取得できますか? ドキュメントをチェックインしましたが、解決策が見つかりませんでした。

注: .xls タイプの Excel ファイルの場合、以下のコードを使用してセルのデータ型を簡単に取得できる ExcelLibrary.dll ライブラリを使用しています。

しかし、スプレッドシートライトには同様の方法はありません。

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

c# - 生成された Excel シートをパスワードで保護する

私のコードは OpenXML スプレッドシートを生成します。操作の変更や削除から保護したいと考えています。私の解決策はうまくいっているようですが、Excelで開くと、「レビュー」パネルで「保護解除」ボタンを押すことができ、Excelはパスワードを要求せずに選択したシートの保護を解除します。どうすればこれを回避できますか?

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

c# - 2 つの Excel ファイルの内容 (形式を含む) を SpreadsheetLight と比較する方法はありますか?

SpreadsheetLight で生成された 2 つの Excel ファイルがあります。私がする必要があるのは、両方が同一かどうかを比較することです。

テキスト ファイルの場合、各ファイルに対して MD5 サムを生成するだけなので簡単ですが、これらは .xlsx ファイルであるため、ファイルを生成するたびにわずかに異なるファイルが生成されるため、簡単ではありません。私がすでに見たものから、基本的に2つのExcelファイルの内容自体を比較する解決策があります:違いについて2つのExcelファイルを比較する

では、その質問の基本的な質問と回答との違いは何ですか。

  1. SpreadsheetLight を使用して両方のファイルを生成しています
  2. ファイル内のデータだけでなく、すべての形式を比較する必要があります...

だから私の質問があります:2つのExcelファイルを比較する他の方法はありますか(特にSpreadsheetLight involvdeと)?

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

c# - 複数のワークシートを操作するSpreadsheetLight

SpreadsheetLightを使用して、WinForms プロジェクトからログ ファイルを書き込んでいます。Interop私の意図は、同じファイル内の 3 つのワークシートにログ エントリを書き込むことです。回避できる場合は 使用を避けたいと思っています。

行タイトルが事前に入力された 3 つのワークシートを含む Excel で作成されたテンプレート ファイルから始めます。各ワークシートには同じ基本プロパティ (個別に異なる可能性があります) があるため、各シートをクラスにカプセル化します。このような:

LogSheetクラスには示されていませんが、適切な場所へのデータの書き込みを処理するメソッドもいくつかあります。

これはすべて正常に動作しているように見えます。デバッグ時に、インスタンス化された 3 つのワークシートのそれぞれにnew LogSheet(<sheetName>)、書き込み後に想定されるデータが含まれていることがわかります。

問題は、データを保存したいときに で回避できることですがthis.data.Save()、1 つのワークシートしか保存されず、Save()メソッドがターミナルで Excel ファイルを閉じるため、他の 2 つは宙に浮いたままになっています。もちろん、スプレッドシートを強制終了し、シートに参照するものがなくなったため、他の2つのシートのいずれかでメソッドを試すSave()と、例外が発生します。結果のファイルには、最初に保存したときのデータしかありません。"Object reference not set to an object"Save()

これを回避する方法についての私の最善の推測は、SLDocumentシートごとに新しいインスタンスを作成せず、代わりにSLDocument.SelectWorksheet()特定のワークシートに書き込みたいたびに使用することですが、それでも LogSheet クラスにカプセル化したままにしたいと考えています。まだ関連しています。

他の提案はありますか?

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

c# - SpreadsheetLight ライブラリを使用してワークブック内の未知のワークシート名をループする方法

SpreadsheetLight ライブラリを使用して、ワークブック内の不明なワークシート名をループしようとしています。

例のステートメントを使用するSLDocument sl = new SLDocument("ModifyExistingSpreadsheetOriginal.xlsx", "Sheet1")と、ワークシートの文字列入力のみが許可されます。

ワークシートのインデックスを参照したり、foreach string sh in Workbook.Sheetsループに似た処理を行う方法はありますか?