[英]Create all the rows of a column as a dropdownlist in excel sheet using c#
我的要求是導出具有3列的空白excel工作表,其中所有行的第1列作為下拉列表,以便用戶可以根據需要使用此工作表來修改數據。 我正在使用C#導出文件。
我已經在處理它,但目前,它僅在特定單元格中創建一個下拉列表,但我想將第一列的所有行都作為下拉列表。
以下是我正在使用的代碼:
object oMissing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.Application app;
Microsoft.Office.Interop.Excel.Worksheet wksheet;
Microsoft.Office.Interop.Excel.Workbook wkbook;
app = new Microsoft.Office.Interop.Excel.Application();
app.Visible = false;
wkbook = app.Workbooks.Add(true);
wksheet = (Microsoft.Office.Interop.Excel.Worksheet)wkbook.ActiveSheet;
string[] ddl_item =
{
"Answers",
"Autos",
"Finance",
"Games",
"Groups",
"HotJobs",
"Maps",
"Mobile Web",
"Movies",
"Music",
"Personals",
"Real Estate",
"Shopping",
"Sports",
"Tech",
"Travel",
"TV",
"Yellow Pages"
};
Microsoft.Office.Interop.Excel.Range xlsRange;
xlsRange = wksheet.get_Range("A1", "A1");
Microsoft.Office.Interop.Excel.DropDowns xlDropDowns;
Microsoft.Office.Interop.Excel.DropDown xlDropDown;
xlDropDowns = ((Microsoft.Office.Interop.Excel.DropDowns)(wksheet.DropDowns(oMissing)));
xlDropDown = xlDropDowns.Add((double)xlsRange.Left, (double)xlsRange.Top, (double)xlsRange.Width, (double)xlsRange.Height, true);
//Add item into drop down list
for (int i = 0; i < ddl_item.Count(); i++)
{
xlDropDown.AddItem(ddl_item[i], i + 1);
}
app.Visible = true;
我剛剛看到了您的問題,這有點晚了,但是您的問題在您的范圍內,您可以更改代碼來滿足您的需求:
//change your range
Range range = worksheet.UsedRange;
//this part makes all the in-range rows of first column as a dropdown list
int row;
for (row = 1; row <= range.Rows.Count; row++)
{
xlDropDowns = ((DropDowns) (worksheet.DropDowns(Type.Missing)));
xlDropDown = xlDropDowns.Add((double) range[row, 1].Left, (double) range[row, 1].Top,
(double) range[row, 1].Width, (double) range[row, 1].Height, true);
string[] ddl_item =
{
"Answers",
"Autos",
"Finance",
"Games",
"Groups",
"HotJobs",
"Maps",
"Mobile Web",
"Movies",
"Music",
"Personals",
"Real Estate",
"Shopping",
"Sports",
"Tech",
"Travel",
"TV",
"Yellow Pages"
};
for (int i = 0; i < ddl_item.Count(); i++)
{
xlDropDown.AddItem(ddl_item[i], i + 1);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.