gpt4 book ai didi

c# - 使用c#在excel中将列的所有行创建为下拉列表

转载 作者:太空宇宙 更新时间:2023-11-03 15:38:29 24 4
gpt4 key购买 nike

My requirement is to export a blank excel sheet with 5 columns in which 3rd columns of all rows as a dropdownlist, so that user can use this work sheet to modify the data as per their need. I am using c# to exporting file.

I already worked on it but that at the moment, it only creates a dropdown list in a particular cell but I want to make all the rows of first column as a dropdown list .

Am using gembox spreadsheet to create an excel file.

下面是我使用的代码:

        SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");
ExcelFile ef = new ExcelFile();
ExcelWorksheet ws = ef.Worksheets.Add("Journal Entry Format");

ws.Columns[0].Width = 30 * 256;
ws.Columns[1].Width = 30 * 256;
ws.Columns[2].Width = 30 * 256;
ws.Columns[3].Width = 30 * 256;
ws.Columns[4].Width = 30 * 256;
ws.Columns[5].Width = 30 * 256;
ws.Columns[6].Width = 30 * 256;

CellStyle tmpStyle2 = new CellStyle();
tmpStyle2.HorizontalAlignment = HorizontalAlignmentStyle.Center;
tmpStyle2.VerticalAlignment = VerticalAlignmentStyle.Center;
tmpStyle2.FillPattern.SetSolid(System.Drawing.Color.Yellow);
ws.Cells.GetSubrangeAbsolute(0, 0, 1, 5).Style = tmpStyle2;
ws.Cells[1, 0].Value = "Last";
ws.Cells.GetSubrangeAbsolute(1, 0, 1, 5).Merged = true;

CellStyle tmpStyle1 = new CellStyle();
tmpStyle1.HorizontalAlignment = HorizontalAlignmentStyle.Center;
tmpStyle1.VerticalAlignment = VerticalAlignmentStyle.Center;
tmpStyle1.FillPattern.SetSolid(System.Drawing.Color.Blue);
tmpStyle1.Font.Weight = ExcelFont.BoldWeight;
tmpStyle1.Font.Color = System.Drawing.Color.White;
tmpStyle1.WrapText = true;

ws.Cells[3, 0].Value = "Voucher Date";
ws.Cells[3, 1].Value = "Voucher No.";
ws.Cells[3, 2].Value = "Select Ledger";
ws.Cells[3, 3].Value = "Debit/Credit";
ws.Cells[3, 4].Value = "Amount";
ws.Cells[3, 5].Value = "Narration";
ws.Cells.GetSubrangeAbsolute(3, 0, 3, 5).Style = tmpStyle1;

var list = new List<string>();
foreach (var led in ledgers)
{
list.Add(led.AccountHead);
}

var flatList = string.Join(",", list.ToArray());

for (int i = 3; i < 100; ++i)
{
DataValidation dv = new DataValidation();
dv.InCellDropdown = true;
dv.InputMessage = "Select Ledger";
dv.Formula1 = flatList;
ws.DataValidations.Add(dv);

ws.Columns[2].Cells[i + 1].Value = dv.Formula1;
}

ws.PrintOptions.FitWorksheetWidthToPages = 1;
ef.Save(this.Response, "JournalEntry Format" + ".xlsx");

最佳答案

以下是如何将第 3 列单元格设置为下拉列表:

var flatList = string.Join(",", list.ToArray());

DataValidation dv = new DataValidation(ws.Columns[2].Cells);
dv.Type = DataValidationType.List;
dv.InputMessage = "Select Ledger";
dv.Formula1 = flatList;

ws.DataValidations.Add(dv);

关于c# - 使用c#在excel中将列的所有行创建为下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31020850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com