zoukankan      html  css  js  c++  java
  • 导出,邮件发送,画图项目公共方法

    using System;
    using System.Data;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
    using Excel = Microsoft.Office.Interop.Excel;
    using System.Text.RegularExpressions;
    using System.Threading;
    using System.Globalization;
    using System.Net.Mail;
    using Yokohama.ApplicationBlocks.Data;

    namespace Yokohama.Toolkits
    {
        public class General
        {
            #region 加载语言信息
            /// <summary>
            /// 加载指定语言信息
            /// </summary>
            /// <param name="UserCulture">用户语言</param>
            public static void InitializeCulture(string UserCulture)
            {
                // there is a user language setting in the profile: switch to it
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(UserCulture);
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture);

            }
            #endregion

            #region 取得当前语言对应的信息
            /// <summary>
            /// 取得当前语言对应的信息
            /// </summary>
            /// <param name="Language">语言</param>
            /// <param name="zhMessage">中文信息</param>
            /// <param name="enMessage">英文信息</param>
            /// <returns>String</returns>
            public static string GetMessageByLanguage(string Language, string zhMessage, string enMessage)
            {
                if (Language.Trim().ToUpper() == "CHINESE")
                {
                    return zhMessage;
                }
                else
                {
                    return enMessage;
                }
            }
            #endregion

            #region ExportDataToExcel
            /// <summary>
            /// 导出Excel文件
            /// </summary>
            /// <param name="dataTable">导出的DataTable</param>
            /// <param name="TitleBold">标题是否Bold</param>
            /// <param name="DrawLine">是否显示框线</param>
            /// <param name="FontSize">字体大小</param>
            /// <param name="StartColIndex">导出数据的起始列</param>
            public static void ExportDataToExcel(DataTable dataTable, bool TitleBold, bool DrawLine, int FontSize, int StartColIndex)
            {
                Excel.Application excel = new Excel.Application();
                try
                {

                    //Excel.Worksheet m_objSheet;//当前Sheet对象
                    Excel.Range m_Range;//当前Range对象

                    excel.Application.Workbooks.Add(true);//引用Excel工作簿

                    excel.Visible = true;//使Excel可视
                    //统计rows和columns
                    int colCount = dataTable.Columns.Count;
                    int rowCount = dataTable.Rows.Count;
                    //写入栏位标题
                    for (int j = StartColIndex; j < colCount; j++)
                    {
                        excel.Cells[1, j + 1 - StartColIndex] = dataTable.Columns[j].ToString();
                    }
                    m_Range = excel.get_Range(excel.Cells[1, 1], excel.Cells[1, colCount - StartColIndex]);
                    m_Range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                    m_Range.Font.Size = 11;
                    if (TitleBold) m_Range.Font.Bold = true;
                    if (DrawLine) m_Range.Borders.LineStyle = 1;
                    //写入Cell数据
                    for (int i = 0; i < rowCount; i++)
                    {
                        for (int j = StartColIndex; j < colCount; j++)
                        {
                            excel.Cells[i + 2, j + 1 - StartColIndex] = dataTable.Rows[i][j].ToString();
                        }
                    }
                    m_Range = excel.get_Range(excel.Cells[2, 1], excel.Cells[rowCount + 1, colCount - StartColIndex]);
                    if (DrawLine) m_Range.Borders.LineStyle = 1;
                    m_Range.EntireColumn.AutoFit();
                    m_Range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                    m_Range.Font.Size = FontSize;
                    m_Range.NumberFormatLocal = "@ ";//文本格式

                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            #endregion

            #region ExportDataToTxt
            /// <summary>
            /// //导出txt文件
            /// </summary>
            /// <param name="dataTable">导出的dataTable</param>
            /// <param name="SavePath">保存路径</param>
            /// <param name="FileName">保存文件名</param>
            /// <param name="StartColIndex">导出的数据开始列</param>
            public static void ExportDataToTxt(DataTable dataTable, string SavePath, string FileName, int StartColIndex)
            {
                try
                {
                    string strPathName = "";
                    if (SavePath.Substring(SavePath.Length - 1) == "\\")
                    {
                        strPathName = SavePath + FileName;
                    }
                    else
                    {
                        strPathName = SavePath + "\\" + FileName;
                    }
                    StreamWriter sw = new StreamWriter(strPathName, false, System.Text.Encoding.Unicode);
                    sw.Flush();
                    string stringList = "";
                    for (int j = StartColIndex; j < dataTable.Columns.Count; j++)
                    {
                        //((char)9).ToString(): tab分隔符
                        stringList += (stringList == "" ? "" : ((char)9).ToString()) + dataTable.Columns[j].ToString();
                    }
                    sw.WriteLine(stringList);
                    for (int i = 0; i < dataTable.Rows.Count; i++)
                    {
                        stringList = "";
                        for (int j = StartColIndex; j < dataTable.Columns.Count; j++)
                        {
                            stringList += (stringList == "" ? "" : ((char)9).ToString()) + dataTable.Rows[i][j].ToString().Trim();
                        }
                        sw.WriteLine(stringList);

                    }
                    sw.Flush();
                    sw.Close();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            #endregion

            #region 数字处理
            /// <summary>
            /// 从字串中取得数值
            /// </summary>
            /// <param name="value">目标字串</param>
            /// <returns>数值</returns>
            public static string GetQtyFromString(string value)
            {
                string returnValue = "";
                for (int i = value.Length; i > 0; i--)
                {
                    if (Regex.IsMatch(value.Substring(0, i), @"^[+-]?\d*[.]?\d*$"))
                    {
                        returnValue = value.Substring(0, i);
                        break;
                    }
                }
                return returnValue;
            }

            /// <summary>
            /// 判断是否为数字
            /// </summary>
            /// <param name="value">目标字串</param>
            /// <returns>True/False</returns>
            public static bool IsNumeric(string value)
            {
                if (Regex.IsMatch(value, @"^[+-]?\d*[.]?\d*$"))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            #endregion

            #region "SendMail"

            /// <summary>
            /// SendMail
            /// </summary>
            /// <param name="MailTo">收件人</param>
            /// <param name="MailFrom">发件人</param>
            /// <param name="subject">主题</param>
            /// <param name="body">Mail内容</param>
            /// <param name="IsBodyHtml">是否使用Html</param>
            /// <param name="BodyEncoding">Mail内容格式</param>
            /// <returns>Ture/False</returns>
            public static bool SendMail(string MailTo, string MailFrom, string subject, string body, bool IsBodyHtml, Encoding BodyEncoding)
            {
                string strMailHost = "10.1.73.253";
                string MailCC = "";
                MailPriority Priority = MailPriority.Normal;
                return SendMail(strMailHost, MailTo, MailFrom, MailCC, subject, body, IsBodyHtml, BodyEncoding, Priority);
            }

            /// <summary>
            /// SendMail
            /// </summary>
            /// <param name="MailTo">收件人</param>
            /// <param name="MailFrom">发件人</param>
            /// <param name="MailCC">CC</param>
            /// <param name="subject">主题</param>
            /// <param name="body">Mail内容</param>
            /// <param name="IsBodyHtml">是否使用Html</param>
            /// <param name="BodyEncoding">Mail内容格式</param>
            /// <returns>Ture/False</returns>
            public static bool SendMail(string MailTo, string MailFrom, string MailCC, string subject, string body, bool IsBodyHtml, Encoding BodyEncoding)
            {
                string strMailHost = "10.1.73.253";
                MailPriority Priority = MailPriority.Normal;
                return SendMail(strMailHost, MailTo, MailFrom, MailCC, subject, body, IsBodyHtml, BodyEncoding, Priority);
            }
            /// <summary>
            /// SendMail
            /// </summary>
            /// <param name="MailTo">收件人</param>
            /// <param name="MailFrom">发件人</param>
            /// <param name="MailCC">CC</param>
            /// <param name="subject">主题</param>
            /// <param name="body">Mail内容</param>
            /// <param name="IsBodyHtml">是否使用Html</param>
            /// <param name="BodyEncoding">Mail内容格式</param>
            /// <param name="Priority">优先级</param>
            /// <returns>Ture/False</returns>
            public static bool SendMail(string MailTo, string MailFrom, string MailCC, string subject, string body, bool IsBodyHtml, Encoding BodyEncoding, MailPriority Priority)
            {
                string strMailHost = "IP地址";
                return SendMail(strMailHost, MailTo, MailFrom, MailCC, subject, body, IsBodyHtml, BodyEncoding, Priority);
            }

            /// <summary>
            /// SendMail
            /// </summary>
            /// <param name="MailHost">SMTP事务主机</param>
            /// <param name="MailTo">收件人</param>
            /// <param name="MailFrom">发件人</param>
            /// <param name="MailCC">CC</param>
            /// <param name="subject">主题</param>
            /// <param name="body">Mail内容</param>
            /// <param name="IsBodyHtml">是否使用Html</param>
            /// <param name="BodyEncoding">Mail内容格式</param>
            /// <param name="Priority">优先级</param>
            /// <returns>Ture/False</returns>
            public static bool SendMail(string MailHost, string MailTo, string MailFrom, string MailCC, string subject, string body, bool IsBodyHtml, Encoding BodyEncoding, MailPriority Priority)
            {
                SmtpClient client = new SmtpClient();
                //设置用于 SMTP 事务的主机的名称,填IP地址也可以了
                //client.Host = "IP地址";
                client.Host = MailHost;
                client.UseDefaultCredentials = false;
                //client.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["MailFrom"],ConfigurationManager.AppSettings["MailFromPwd"]);
                client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                MailMessage message = new MailMessage();

                message.From = new MailAddress(MailFrom);
                //MailTO
                string[] arrMailTo = MailTo.Split(';');
                for (int i = 0; i < arrMailTo.Length; i++)
                {
                    if (arrMailTo[i].Trim() != "")
                    {
                        message.To.Add(new MailAddress(arrMailTo[i].Trim()));
                    }
                }
                string[] arrMialCC = MailCC.Split(';');
                //CC
                for (int i = 0; i < arrMialCC.Length; i++)
                {
                    if (arrMialCC[i].Trim() != "")
                    {
                        message.CC.Add(new MailAddress(arrMialCC[i].Trim()));
                    }
                }
                message.Subject = subject;
                message.Body = body;
                message.BodyEncoding = BodyEncoding; //System.Text.Encoding.UTF8;          
                message.IsBodyHtml = IsBodyHtml;
                message.Priority = Priority;

                try
                {
                    client.Send(message);
                    return true;
                }
                catch
                {
                    return false;
                }

            }
            #endregion

            #region GetWashingMaster

            /// <summary>
            /// 取得指定WashCode的WashMaster
            /// </summary>
            /// <param name="ConnectionString">连接字串</param>
            /// <param name="WashCodeColumnName">洗水符号栏位名称</param>
            /// <param name="WashMasterColumnName">洗水文字栏位名称</param>
            /// <param name="CommanddText">执行文本</param>
            public static string GetWashingMasterByCode(string ConnectionString, string WashCodeColumnName, string WashMasterColumnName, string CommanddText)
            {
                int MaxLength = 40;
                string WashCodeFontFamily = "BBCWASH_2012";
                string WashCodeSize="25pt";
                string WashMasterFontFamily="Times New Roman";
                string WashMasterSize="12pt";
                return GetWashingMasterByCode(ConnectionString, WashCodeColumnName, WashMasterColumnName, CommanddText, MaxLength, WashCodeFontFamily, WashCodeSize, WashMasterFontFamily, WashMasterSize);
            }

            /// <summary>
            /// 取得指定WashCode的WashMaster
            /// </summary>
            /// <param name="ConnectionString">连接字串</param>
            /// <param name="WashCodeColumnName">洗水符号栏位名称</param>
            /// <param name="WashMasterColumnName">洗水文字栏位名称</param>
            /// <param name="CommanddText">执行文本</param>
            public static string GetWashingMasterByCode(string ConnectionString, string WashCodeColumnName, string WashMasterColumnName, string CommanddText,int MaxLength)
            {
                string WashCodeFontFamily = "BBCWASH_2012";
                string WashCodeSize = "25pt";
                string WashMasterFontFamily = "Times New Roman";
                string WashMasterSize = "12pt";
                return GetWashingMasterByCode(ConnectionString, WashCodeColumnName, WashMasterColumnName, CommanddText, MaxLength, WashCodeFontFamily, WashCodeSize, WashMasterFontFamily, WashMasterSize);
            }

            /// <summary>
            /// 取得指定WashCode的WashMaster
            /// </summary>
            /// <param name="ConnectionString">连接字串</param>
            /// <param name="WashCodeColumnName">洗水符号栏位名称</param>
            /// <param name="WashMasterColumnName">洗水文字栏位名称</param>
            /// <param name="CommanddText">执行文本</param>
            /// <param name="Maxlength">显示最大长度</param>
            /// <param name="WashCodeFontFamily">洗水符号字体</param>
            /// <param name="WashCodeSize">洗水符号字体大小</param>
            public static string GetWashingMasterByCode(string ConnectionString, string WashCodeColumnName, string WashMasterColumnName, string CommanddText, int MaxLength, string WashCodeFontFamily, string WashCodeSize)
            {
                string WashMasterFontFamily = "Times New Roman";
                string WashMasterSize = "12pt";
                return GetWashingMasterByCode(ConnectionString, WashCodeColumnName, WashMasterColumnName, CommanddText, MaxLength, WashCodeFontFamily, WashCodeSize, WashMasterFontFamily, WashMasterSize);
            }
            
            /// <summary>
            /// 取得指定WashCode的WashMaster
            /// </summary>
            /// <param name="ConnectionString">连接字串</param>
            /// <param name="WashCodeColumnName">洗水符号栏位名称</param>
            /// <param name="WashMasterColumnName">洗水文字栏位名称</param>
            /// <param name="CommanddText">执行文本</param>
            /// <param name="MaxLength">最大显示长度</param>
            /// <param name="WashCodeFontFamily">洗水符号字体</param>
            /// <param name="WashCodeSize">洗水符号字体大小</param>
            /// <param name="WashMasterFontFamily">洗水文字字体</param>
            /// <param name="WashMasterSize">洗水文字大小</param>
            /// <returns>WashingMaster</returns>
            public static string GetWashingMasterByCode(string ConnectionString, string WashCodeColumnName, string WashMasterColumnName, string CommanddText, int MaxLength, string WashCodeFontFamily, string WashCodeSize, string WashMasterFontFamily, string WashMasterSize)
            {
                try
                {
                    DataTable dt = SqlHelper.ExecuteDataset(ConnectionString, CommandType.Text, CommanddText).Tables[0];
                    int intCurLength = 0;//当前长度
                    string strWashMaster = "";
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        string strWashValue = dt.Rows[i][WashMasterColumnName].ToString().Trim();
                        if (strWashValue != "")
                        {
                            if (strWashMaster == "")
                            {
                                //读取WashCode
                                strWashMaster = "<span style='font-family:" + WashCodeFontFamily + ";font-size:" + WashCodeSize + ";'>" + dt.Rows[i][WashCodeColumnName].ToString().Trim() + "</span><br /><span style='font-family:" + WashMasterFontFamily + ";font-size:" + WashMasterSize + ";'>" + strWashValue;
                                intCurLength += strWashValue.Length + 1;
                            }
                            else
                            {
                                //当多个Wash长度加起来不超过maxLength时,则将他们放在一起显示;否则分行显示
                                int intWashLength = strWashValue.Length + 1;
                                if (intCurLength + intWashLength > MaxLength)
                                {
                                    strWashMaster += "<br />" + strWashValue;
                                    intCurLength = intWashLength;
                                }
                                else
                                {
                                    strWashMaster += " " + strWashValue;
                                    intCurLength += intWashLength;
                                }
                            }
                        }
                    }
                    return strWashMaster + "</span>";
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }


            #endregion
    }
    }

  • 相关阅读:
    leetcode 86. Partition List
    leetcode 303. Range Sum Query
    leetcode 1310. XOR Queries of a Subarray
    leetcode 1309. Decrypt String from Alphabet to Integer Mapping
    leetcode 215. Kth Largest Element in an Array
    将numpy.ndarray写入excel
    leetcode 1021 Remove Outermost Parentheses
    leetcode 1306. Jump Game III
    leetcode 1305. All Elements in Two Binary Search Trees
    ICCV2019 oral:Wavelet Domain Style Transfer for an Effective Perception-distortion Tradeoff in Single Image Super-Resolution
  • 原文地址:https://www.cnblogs.com/yzenet/p/2501099.html
Copyright © 2011-2022 走看看