地平线

......

silverlight导出excel

开发导出excel,首先需要添加项目引用。

Microsoft.CSharp

这个是应用dynamic的前提。

 

在代码页,需要添加引用

using System.Runtime.InteropServices.Automation;

 

以下是我具体制作业务导出的其中一个功能的代码,供大家参考。

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;
            }
        }
View Code

 

 

//开发过程中遇到的问题。

在开发silverlight导出excel时遇到【此操作在当前上下文中不受支持】,最后调试成功,具体原因,是在项目的属性设置中没有勾选一个选项,具体参看截图。

 

点击 浏览器外设置,在弹出界面勾选 在浏览器之外运行时需要提升的信任。即可解决

 

posted on 2014-08-29 11:01  烟灰缸  阅读(797)  评论(0编辑  收藏  举报

导航