0

わかりました、タスクを Excel にエクスポートして再度公開するときに、TFS のタスクと同様に動作する必要があるプロジェクトを作成しています。まず、必要なデータを含む Excel ファイルを生成しようとしています。ドロップダウン ボックスに「Donald」、「Wilco」、「Jansen」などの名前を入力する必要があります。次のコードを使用して、それらをドロップダウンに追加し、特定のセルへのドロップダウン。しかし、その列にドロップダウンを持たせたいです。つまり、セル A1 に行くとドロップダウンが必要です。セル A2 に行くと、ドロップダウンが必要です。A(x) には常にドロップダウンが必要なので、情報を追加するとドロップダウンがあるはずの新しい行に移動します。

現在、私は次のコードを開始していますが、ここからどこに行くべきかわかりません

        var oMissing = Type.Missing;

        var excel = new Application();
        var wb = excel.Workbooks.Add(1);
        var sh = wb.Sheets.Add();
        sh.Name = "TestSheet";
        sh.Cells[1, "A"].Value2 = "SNO";
        sh.Cells[2, "B"].Value2 = "A";
        sh.Cells[2, "C"].Value2 = "1122";

        var range = sh.Range["A1","A1"];
        var xlDropDowns = ((DropDowns)(sh.DropDowns(oMissing)));
        var xlDropDown = xlDropDowns.Add((double)range.Left, (double)range.Top, (double)range.Width, (double)range.Height, false);
        var items = new[] { "Name1", "Name2", "Name3" };

        //Add items into drop down list
        for (int i = 0; i < items.Length; i++)
        {
            xlDropDown.AddItem(items[i], i + 1);
        }

        //wb.Close(true);
        //excel.Quit();
        excel.Visible = true;
4

1 に答える 1

1

以下で解決しました

        var oMissing = Type.Missing;

        var excel = new Application();
        var wb = excel.Workbooks.Add(1);
        var sheet = wb.Sheets.Add();
        sheet.Name = "ClientEditSheet";
        sheet.Visible = false;


        sheet.Range["A1"].Value = "Name1";
        sheet.Range["A2"].Value = "Name2";
        sheet.Range["A3"].Value = "Name3";
        sheet.Range["A4"].Value = "Name4";

        var sheet2 = wb.Sheets["Sheet1"];

        Range validatingCellsRange = sheet2.Range["B1"].EntireColumn;

        var lookupValues = "=ClientEditSheet!$" + "A" + "$1:$" + "A" + "$14";

        validatingCellsRange.Validation.Delete();
        validatingCellsRange.Validation.Add(XlDVType.xlValidateList,
               XlDVAlertStyle.xlValidAlertInformation,
               XlFormatConditionOperator.xlBetween, lookupValues, Type.Missing);
        validatingCellsRange.Validation.IgnoreBlank = true;
        validatingCellsRange.Validation.InCellDropdown = true;

        //wb.Close(true);
        //excel.Quit();
        excel.Visible = true;
于 2013-10-14T12:33:25.717 に答える