用C#创建Excel,添加下拉框列,并动态给下拉框赋值

public void simpleButton1_Click(object sender, EventArgs e) 

KillProcess("Excel");//首先杀死进程 
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); 
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks; 
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); 
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1]; 
Microsoft.Office.Interop.Excel.Range range = worksheet.Cells; 

//Excel.Range ran = range.get_Range("A5", "A5"); 
//ran.AddComment("批注"); 
Excel.Range ran1 = worksheet.Columns.get_Range("H:H", Type.Missing);//或者.get_Range("D1", "D1").get_Resize(50,1);//获取一整列D,行数为50 
ran1.Validation.Delete();//有无都可以 
ran1.Validation.Add(Excel.XlDVType.xlValidateList, Excel.XlDVAlertStyle.xlValidAlertStop, Type.Missing, "1,2,3", Type.Missing); 
//填充值 
worksheet.Cells[1, 1] = "用户代码"; 
worksheet.Cells[1, 2] = "用户名称"; 
worksheet.Cells[1, 3] = "绩效积分项"; 
worksheet.Cells[1, 4] = "绩效积分时间"; 
worksheet.Cells[1, 5] = "描述"; 

//先把下拉框值赋值在Z列上 

//杀死进程 
private void KillProcess(string processName) 

//获得进程对象,以用来操作 
System.Diagnostics.Process myproc = new System.Diagnostics.Process(); 
//得到所有打开的进程 
try 

//获得需要杀死的进程名 
foreach (Process thisproc in Process.GetProcessesByName(processName)) 

//立即杀死进程 
thisproc.Kill(); 


catch (Exception Exc) 

throw new Exception("", Exc); 

}
worksheet.Cells[1, 26] = "a"; 
worksheet.Cells[2, 26] = "b"; 
worksheet.Cells[3, 26] = "c"; 
//在把Z列值赋值到下拉框列上 
worksheet.get_Range(worksheet.Cells[1, 3], worksheet.Cells[10000, 3]).Validation.Add(Excel.XlDVType.xlValidateList, Excel.XlDVAlertStyle.xlValidAlertStop, Type.Missing, "=$Z$1:$Z$5", Type.Missing); 

//最后隐藏Z列 
Excel.Range ranger = (Excel.Range)worksheet.Columns["Z:Z", System.Type.Missing]; 
ranger.Hidden = true; 
//将文件保存到D:\\tt.xls 
workbook.SaveCopyAs("D:\\111.xlsx"); 
workbook.Saved = true; 
xlApp.Visible = true;//打开Excel文件 
// ran1.Validation.Modify(Excel.XlDVType.xlValidateList, Excel.XlDVAlertStyle.xlValidAlertStop, Type.Missing, "4,3,2", Type.Missing);//用此法方(Modify)可以对前面的下拉框进行修改, 
}






 

//当使用模板时,用下面的代码替换上面的几行
object missing = Missing.Value; 

KillProcess("Excel");//首先杀死进程 
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); 
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks; 
//Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); 
//Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1]; 
//Microsoft.Office.Interop.Excel.Range range = worksheet.Cells; 

//打开模板文件,得到WorkBook对象 
Microsoft.Office.Interop.Excel.Workbook workbook = xlApp.Workbooks.Open(HttpContext.Request.PhysicalApplicationPath + "Templates\\"+"IPalTempFile\\PDU资产模板1.xls", missing, missing, missing, missing, missing, 
missing,missing,missing,missing,missing,missing,missing); 
//得到WorkSheet对象 
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets.get_Item(1); 
Microsoft.Office.Interop.Excel.Range range = worksheet.Cells; 
//worksheet.Name = "过程资产平台导入建议模板";

转载于:https://www.cnblogs.com/cw_volcano/archive/2011/06/07/2074588.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用layui框架进行动态添加下拉框组件并动态渲染数据时,可以使用下面的代码实现: HTML代码: ```html <div class="layui-form-item"> <label class="layui-form-label">下拉框:</label> <div class="layui-input-block"> <select name="select" lay-filter="select"> <option value="">请选择</option> </select> </div> </div> ``` JavaScript代码: ```javascript layui.use(['form', 'jquery'], function(){ var form = layui.form; var $ = layui.jquery; // 动态渲染下拉框数据 function renderSelect() { var data = [{value: 1, text: '选项1'}, {value: 2, text: '选项2'}, {value: 3, text: '选项3'}]; var select = $('select[name=select]'); select.empty(); select.append('<option value="">请选择</option>'); layui.each(data, function(index, item){ select.append('<option value="'+ item.value +'">'+ item.text +'</option>'); }); form.render('select'); } // 动态添加下拉框组件 function addSelect() { var html = '<div class="layui-form-item">'+ '<label class="layui-form-label">下拉框:</label>'+ '<div class="layui-input-block">'+ '<select name="select" lay-filter="select">'+ '<option value="">请选择</option>'+ '</select>'+ '</div>'+ '</div>'; $('.layui-form').append(html); renderSelect(); } // 初始化页面 renderSelect(); // 点击按钮添加下拉框组件 $('#addSelect').click(function(){ addSelect(); }); // 监听下拉框事件 form.on('select(select)', function(data){ console.log(data.value + ' ' + data.elem[data.elem.selectedIndex].text); }); }); ``` 在上述代码,首先使用`layui.use`方法加载`form`和`jquery`模块,然后定义了两个函数`renderSelect`和`addSelect`,分别用于动态渲染下拉框数据和动态添加下拉框组件。在`renderSelect`函数,通过定义一个数据数组,然后遍历该数组,动态添加下拉框选项,并调用`form.render('select')`方法进行渲染。在`addSelect`函数,通过拼接HTML代码,动态添加一个下拉框组件,并调用`renderSelect`函数进行数据渲染。最后,在页面加载完毕后,调用`renderSelect`函数进行初始化,并监听下拉框事件,输出选的值和文本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值