0

再びエクセルの質問です。クライアントからドロップダウン リスト (コンボ ボックス) を含む Excel ファイルが送られてきました。そのコンボ ボックスをコピーするか、内部の情報を使用して新しいコンボ ボックスを作成する必要があります。Excelの場合、ドロップダウンリストはData Validationという名前であることがわかりました(すでに取得していますが、彼には何もできません)。

Gembox dll と NativeExcel dll がありますが、解決策が見つかりませんでした。

GemBoxを使用すると、すでにこれを取得しています:

ExcelFile ef = ExcelFile.Load("Modelo_AA.xlsx");
ExcelWorksheet ws = ef.Worksheets[0];
ExcelFile efnovo = new ExcelFile();
ExcelWorksheet wsnovo = efnovo.Worksheets.Add("Hello");
DataValidationCollection dvc = ws.DataValidations;
DataValidation dv = dvc[0];
bool dd = dv.InCellDropdown; //here i get true

ありがとうアンドリュー

編集:データ検証はドロップダウンリストに関連付けられていると思いました!

Edit2: 主な問題は、WorkBook から他のドロップダウン リストにコピーすることです!

4

1 に答える 1

0

最初に、あなたの場合、DataValidation はリスト型であるため、ドロップダウンリストに関連付けられていると言いたいです (dv.Type プロパティを参照)。

また、このリスト DataValidation を別の Excel ファイルにコピーするには、DataValidation ソースに依存します。shahkalpesh のコメントに記載されているように、ハードコードすることも、セル範囲から取得することもできます。dv.Formula1 オブジェクトを取得することで、DataValidation のソースを確認できます。たとえば、ハードコーディングされている場合、Formula1 はこれらのリスト項目の配列になり、その DataValidation を別の ExcelFile に追加するだけです。

wsnovo.DataValidations.Add(dv);

ただし、その DataValidation に Formula1 のセル範囲がある場合は、そのセル範囲を新しい ExcelFile にもコピーする必要があります。または、そのセル範囲のセルの値を読み取って、Formula1 をハードコードされたアイテムのリストに置き換えることができます。 .

于 2013-12-03T10:03:01.160 に答える