silverlight中datagrid数据到处excel

silverlight中datagrid数据到处excel,第1张

概述首先新建一个DataGrdiExtensions类,代码为: public static class DataGridExtensions { /// <summary> /// 导出dg中数据,成功返回true,失败返回false /// </summary> /// <param name="dg"></param>

首先新建一个DataGrdIExtensions类,代码为:

 public static class DataGrIDExtensions    {        /// <summary>        /// 导出dg中数据,成功返回true,失败返回false        /// </summary>        /// <param name="dg"></param>        /// <returns></returns>        public static bool Export(this DataGrID dg)        {            return ExportDataGrID(dg);        }        /// <summary>        /// 导出dGrID中数据,成功返回true,失败返回false        /// </summary>        /// <param name="dGrID"></param>        /// <returns></returns>        public static bool ExportDataGrID(DataGrID dGrID)        {            bool exportOK = false;            #region 导出数据            try            {                SavefileDialog obJsFD = new SavefileDialog() { DefaultExt = "csv",Filter = "CSV files (*.csv)|*.csv|Excel XML (*.xml)|*.xml|All files (*.*)|*.*",FilterIndex = 1 };                if (obJsFD.ShowDialog() == true)                {                    string strFormat = obJsFD.Safefilename.Substring(obJsFD.Safefilename.IndexOf('.') + 1).toupper();                    StringBuilder strBuilder = new StringBuilder();                    if (dGrID.ItemsSource == null) return false;                    List<string> lstFIElds = new List<string>();                    if (dGrID.headersVisibility == DataGrIDheadersVisibility.Column || dGrID.headersVisibility == DataGrIDheadersVisibility.All)                    {                        foreach (DataGrIDColumn dgcol in dGrID.Columns)                            lstFIElds.Add(FormatFIEld(dgcol.header.ToString(),strFormat));                        BuildStringOfRow(strBuilder,lstFIElds,strFormat);                    }                    foreach (object data in dGrID.ItemsSource)                    {                        lstFIElds.Clear();                        foreach (DataGrIDColumn col in dGrID.Columns)                        {                            string strValue = "";                            Binding objBinding = null;                            if (col is DataGrIDBoundColumn)                                objBinding = (col as DataGrIDBoundColumn).Binding;                            if (col is DataGrIDTemplateColumn)                            {                                //This is a template column... let us see the underlying dependency object                                DependencyObject objDO = (col as DataGrIDTemplateColumn).CellTemplate.LoadContent();                                FrameworkElement oFE = (FrameworkElement)objDO;                                FIEldInfo oFI = oFE.GetType().GetFIEld("TextProperty");                                if (oFI != null)                                {                                    if (oFI.GetValue(null) != null)                                    {                                        if (oFE.GetBindingExpression((DependencyProperty)oFI.GetValue(null)) != null)                                            objBinding = oFE.GetBindingExpression((DependencyProperty)oFI.GetValue(null)).ParentBinding;                                    }                                }                            }                            if (objBinding != null)                            {                                if (objBinding.Path.Path != "")                                {                                    PropertyInfo pi = data.GetType().GetProperty(objBinding.Path.Path);                                    if (pi != null) strValue = pi.GetValue(data,null).ToString();                                }                                if (objBinding.Converter != null)                                {                                    if (strValue != "")                                        strValue = objBinding.Converter.Convert(strValue,typeof(string),objBinding.ConverterParameter,objBinding.ConverterCulture).ToString();                                    else                                        strValue = objBinding.Converter.Convert(data,objBinding.ConverterCulture).ToString();                                }                            }                            lstFIElds.Add(FormatFIEld(strValue,strFormat));                        }                        BuildStringOfRow(strBuilder,strFormat);                    }                    StreamWriter sw = new StreamWriter(obJsFD.Openfile(),System.Text.EnCoding.Unicode);                    if (strFormat == "XML")                    {                        //Let us write the headers for the Excel XML                        sw.Writeline("<?xml version=\"1.0\" enCoding=\"utf-8\"?>");                        sw.Writeline("<?mso-application progID=\"Excel.Sheet\"?>");                        sw.Writeline("<Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\">");                        sw.Writeline("<documentPropertIEs xmlns=\"urn:schemas-microsoft-com:office:office\">");                        sw.Writeline("<Author>arasu Elango</Author>");                        sw.Writeline("<Created>" + DateTime.Now.TolocalTime().TolongDateString() + "</Created>");                        sw.Writeline("<LastSaved>" + DateTime.Now.TolocalTime().TolongDateString() + "</LastSaved>");                        sw.Writeline("<Company>Atom8 IT Solutions (P) Ltd.,</Company>");                        sw.Writeline("<Version>12.00</Version>");                        sw.Writeline("</documentPropertIEs>");                        sw.Writeline("<Worksheet ss:name=\"Silverlight Export\" xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\">");                        sw.Writeline("<table>");                    }                    sw.Write(strBuilder.ToString());                    if (strFormat == "XML")                    {                        sw.Writeline("</table>");                        sw.Writeline("</Worksheet>");                        sw.Writeline("</Workbook>");                    }                    sw.Close();                    exportOK = true;                }            }            catch (Exception ex)            {                exportOK = false;                MessageBox.Show("保存失败:"+ex.Message);            }            #endregion            return exportOK;                   }        /// <summary>        /// 设置datagrID中每一行的数据内容        /// </summary>        /// <param name="strBuilder"></param>        /// <param name="lstFIElds"></param>        /// <param name="strFormat"></param>        private static voID BuildStringOfRow(StringBuilder strBuilder,List<string> lstFIElds,string strFormat)        {            switch (strFormat)            {                case "XML":                    strBuilder.Appendline("<Row>");                    strBuilder.Appendline(String.Join("\r\n",lstFIElds.ToArray()));                    strBuilder.Appendline("</Row>");                    break;                case "CSV":                    strBuilder.Appendline(String.Join("\t",lstFIElds.ToArray()));                    break;            }        }                /// <summary>        /// 设置字符串输出格式        /// </summary>        /// <param name="data"></param>        /// <param name="format"></param>        /// <returns></returns>        private static string FormatFIEld(string data,string format)        {            switch (format)            {                case "XML":                    return String.Format("<Cell><Data ss:Type=\"String\">{0}</Data></Cell>",data);                case "CSV":                    return String.Format("\"{0}\"",data.Replace("\"","\"\"\"").Replace("\n","").Replace("\r",""));            }            return data;        }    }
导出数据时,只需要调用方法:datagrID.Export()即可 总结

以上是内存溢出为你收集整理的silverlight中datagrid数据到处excel全部内容,希望文章能够帮你解决silverlight中datagrid数据到处excel所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1018096.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存