开发导出excel,首先需要添加项目引用。
Microsoft.CSharp
这个是应用dynamic的前提。
在代码页,需要添加引用
using System.Runtime.InteropServices.Automation;
以下是我具体制作业务导出的其中一个功能的代码,供大家参考。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
private ICommand _excelCommand; public ICommand ExcelCommand { get { if (_excelCommand == null) { _excelCommand = new RelayCommand<Grid>((g) => { dynamic excel = AutomationFactory.CreateObject("Excel.Application"); excel.Visible = true; dynamic workbook = excel.workbooks; workbook.Add(); dynamic sheet = excel.ActiveSheet; dynamic cell = null; int i = 1; // 将数据传输到Excel foreach (BusinessBillOutModel item in SelectItems) { //ItemCollection.Add(item); //销售日期 cell = sheet.Cells[i, 1]; // 列和行 cell.Value = item.BillDate; cell.ColumnWidth = 25; //名称 cell = sheet.Cells[i, 2]; cell.Value = SettingSpace.CodeNameConvert(GlobalEnum.BaseType.BasePart, item.PartCode); //金额 cell = sheet.Cells[i, 3]; cell.Value = item.TotalPrice; //班组 cell = sheet.Cells[i, 4]; cell.Value = SettingSpace.CodeNameConvert(GlobalEnum.BaseType.TeamWork,item.TeamWork); //收款员(里台员) cell = sheet.Cells[i, 5]; cell.Value = SettingSpace.CodeNameConvert(GlobalEnum.BaseType.UserType,item.SellPerson); //司机 cell = sheet.Cells[i, 6]; cell.Value = SettingSpace.CodeNameConvert(GlobalEnum.BaseType.UserType,item.AgentPerson); //备注 cell = sheet.Cells[i, 6]; cell.Value = item.BillRemark; i++; } }); } return _excelCommand; } }
//开发过程中遇到的问题。
在开发silverlight导出excel时遇到【此操作在当前上下文中不受支持】,最后调试成功,具体原因,是在项目的属性设置中没有勾选一个选项,具体参看截图。
点击 浏览器外设置,在弹出界面勾选 在浏览器之外运行时需要提升的信任。即可解决