2017-03-20 8 views
1

C# 응용 프로그램에서 Excel 파일을 생성하고 나중에 사용자가 채울 수 있습니다. 나는 Microsoft.Office.Interop.Excel을 사용하고 있습니다.C#의 Microsoft.Office.Interop.Excel을 사용하여 사전 주입 된 드롭 다운 값으로 Excel 파일 생성

나는 Excel를 시작하고 아래의 코드를 사용하여 헤더 셀을 채우는 해요 :

var excelApp = new Excel.Application {Visible = true}; 
var workbook = excelApp.Workbooks.Add(Missing.Value); 
var workSheet = (Excel.Worksheet) workbook.Worksheets.Item[1]; 

headers.Select((s, i) => new Tuple<string, int>(s, i)).ToList().ForEach 
    (
    h => { workSheet.Cells[1, h.Item2 + 1] = h.Item1; } 
    ); 

가 어떻게 첫 번째 열에의 세포가 미리 채워진 값을 포함하는 드롭 다운을하도록 지정할 수 있습니다?

나는 그런 다음 행운 않고, here을 발견으로, 사물의 부하에게 온라인을 시도했다 : 목록에 제한 검증을 적용 할 때 수식 매개 변수 값의 쉼표로 구분 된 문자열을 기대

var dropDownRange = workSheet.Range["A2"].Resize[64000]; 
dropDownRange.Value = Values; 
dropDownRange = dropDownRange.Offset[0, 1]; 
dropDownRange.Validation.Delete(); 
dropDownRange.Validation.Add(Excel.XlDVType.xlValidateList, Excel.XlDVAlertStyle.xlValidAlertInformation, Type.Missing, "=DropDownList"); 

답변

1

.

dropDownRange.Value = "Item 2"; 

또는 더 나은 :

dropDownRange.Value = items[1]; 
또한 당신은 당신이 할 수있는 값에 세포를 기본적으로해야하는 경우

var items = new List<string>() { "Item 1", "Item 2", "Item 3" }; 
var formattedItems = string.Join(", ", items.ToArray()); 

var dropDownRange = workSheet.Range["A2"].EntireColumn; 
dropDownRange.Validation.Delete(); 
dropDownRange.Validation.Add(Excel.XlDVType.xlValidateList, 
    Excel.XlDVAlertStyle.xlValidAlertInformation, 
    Excel.XlFormatConditionOperator.xlBetween, 
    formattedItems, 
    Type.Missing); 

: 다음 세 가지 값을 드롭 다운을 생성하는 예입니다