723 lines
24 KiB
C#
723 lines
24 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Web;
|
|||
|
|
using System.Data.SqlClient;
|
|||
|
|
using System.Data;
|
|||
|
|
using Newtonsoft.Json;
|
|||
|
|
using NPOI;
|
|||
|
|
using NPOI.HPSF;
|
|||
|
|
using NPOI.HSSF;
|
|||
|
|
using NPOI.HSSF.UserModel;
|
|||
|
|
using NPOI.HSSF.Util;
|
|||
|
|
using NPOI.POIFS;
|
|||
|
|
using NPOI.Util;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Collections;
|
|||
|
|
using System.IO;
|
|||
|
|
using System.Net;
|
|||
|
|
using System.Net.Mail;
|
|||
|
|
using System.Security.Cryptography;
|
|||
|
|
/// <summary>
|
|||
|
|
///DBHlper 的摘要说明
|
|||
|
|
/// </summary>
|
|||
|
|
public class DBHlper : System.IDisposable
|
|||
|
|
{
|
|||
|
|
public static DataSet Execute(string strCommandString)
|
|||
|
|
{
|
|||
|
|
SqlConnection oConn = null;
|
|||
|
|
SqlDataAdapter oDataAdapter = null;
|
|||
|
|
DataSet oDataSet = new DataSet();
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
//读取webconfig
|
|||
|
|
oConn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstring"]);
|
|||
|
|
oDataAdapter = new SqlDataAdapter(strCommandString,oConn);
|
|||
|
|
oDataAdapter.Fill(oDataSet);
|
|||
|
|
return oDataSet;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
finally
|
|||
|
|
{
|
|||
|
|
if (oConn != null) oConn.Close();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
public static int getcount(string cmd)
|
|||
|
|
{
|
|||
|
|
SqlConnection oConn = null;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
//读取webconfig
|
|||
|
|
oConn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstring"]);
|
|||
|
|
oConn.Open();
|
|||
|
|
SqlCommand comd = new SqlCommand(cmd, oConn);
|
|||
|
|
return Convert.ToInt32(comd.ExecuteScalar());
|
|||
|
|
}
|
|||
|
|
catch (Exception err)
|
|||
|
|
{
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
finally
|
|||
|
|
{
|
|||
|
|
if (oConn != null) oConn.Close();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
public static int excutecmd(string cmd)
|
|||
|
|
{
|
|||
|
|
SqlConnection oConn = null;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
oConn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstring"]);
|
|||
|
|
oConn.Open();
|
|||
|
|
SqlCommand comd = new SqlCommand(cmd, oConn);
|
|||
|
|
return Convert.ToInt32(comd.ExecuteNonQuery());
|
|||
|
|
}
|
|||
|
|
catch (Exception err)
|
|||
|
|
{
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
finally
|
|||
|
|
{
|
|||
|
|
if (oConn != null) oConn.Close();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void Dispose()
|
|||
|
|
{
|
|||
|
|
throw new NotImplementedException();
|
|||
|
|
}
|
|||
|
|
public static string getmima(string mima)
|
|||
|
|
{
|
|||
|
|
string setmima = "";
|
|||
|
|
setmima=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(mima, "SHA1");
|
|||
|
|
return setmima;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#region 获取权限
|
|||
|
|
public static bool getqx(int juese, string mokuai, string biao, string gongneng)
|
|||
|
|
{
|
|||
|
|
bool qx=false;
|
|||
|
|
string sqlget = "select COUNT(*) from view_quanxian where mokuan='" + mokuai + "' and biao='" + biao + "' and jsid='" + juese + "' and gongneng='" + gongneng + "'";
|
|||
|
|
DataSet ds = Execute(sqlget);
|
|||
|
|
if (ds != null&&ds.Tables[0].Rows.Count>0&&Convert.ToInt32(ds.Tables[0].Rows[0][0])>0)
|
|||
|
|
{
|
|||
|
|
qx=true;
|
|||
|
|
}
|
|||
|
|
//判断当前登录账号是否为admin
|
|||
|
|
getuser user = new getuser();
|
|||
|
|
if(user.isadmin())
|
|||
|
|
{
|
|||
|
|
qx=user.isadmin();
|
|||
|
|
}
|
|||
|
|
return qx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 获取角色数量
|
|||
|
|
public static int getjscount()
|
|||
|
|
{
|
|||
|
|
int count=-1;
|
|||
|
|
DataSet s = Execute("select COUNT(*) from nr_z_yhjs");
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
count = Convert.ToInt32(s.Tables[0].Rows[0][0]);
|
|||
|
|
}
|
|||
|
|
catch
|
|||
|
|
{
|
|||
|
|
count = -1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
return count;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 获取用户数量
|
|||
|
|
public static int getyhcount()
|
|||
|
|
{
|
|||
|
|
int count = -1;
|
|||
|
|
DataSet s = Execute("select COUNT(*) from nr_z_yhzh where juese>0 and yangshi=1");
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
count = Convert.ToInt32(s.Tables[0].Rows[0][0]);
|
|||
|
|
}
|
|||
|
|
catch
|
|||
|
|
{
|
|||
|
|
count = -1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
return count;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 生产编号
|
|||
|
|
public static string getbh(string header, string table, string field, int num)
|
|||
|
|
{
|
|||
|
|
string bh = "";
|
|||
|
|
string sql = "declare @ID varchar(50),@date varchar(50) set @date = right(rtrim(cast(year(getdate()) as varchar(10))),2)+right('0'+rtrim(cast(month(getdate()) as varchar(10))),2) select @ID = max(right(" + field + "," + num + ")) from " + table + " where left(right(" + field + ",(" + 2 + "+6)),4) = @date set @ID = isnull(@ID,'0000000000') set @ID = '0000000000'+CONVERT(varchar(50),(CONVERT(int,@ID)+1)) set @ID = right(@ID," + num + ") select '" + header + "' + @date + @ID";
|
|||
|
|
DataSet ds = Execute(sql);
|
|||
|
|
if (ds != null)
|
|||
|
|
{
|
|||
|
|
bh = ds.Tables[0].Rows[0][0].ToString();
|
|||
|
|
}
|
|||
|
|
return bh;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
#region 获取用户样式
|
|||
|
|
/*获取用户样式*/
|
|||
|
|
public static string getstyle()
|
|||
|
|
{
|
|||
|
|
Maticsoft.Model.nr_z_yhzh user = (Maticsoft.Model.nr_z_yhzh)(HttpContext.Current.Session["user"]);
|
|||
|
|
DataSet ds = Execute("select * from nr_sys_ys where yh='" + user.id + "'");
|
|||
|
|
string get = "";
|
|||
|
|
if (ds != null && ds.Tables[0].Rows.Count > 0)
|
|||
|
|
{
|
|||
|
|
get = ds.Tables[0].Rows[0]["ttp"].ToString() + "," + ds.Tables[0].Rows[0]["ltp"].ToString() + "," + ds.Tables[0].Rows[0]["mtp"].ToString();
|
|||
|
|
}
|
|||
|
|
return get;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
|
|||
|
|
#region 移除用户菜单
|
|||
|
|
public static int delcdxm(string cdmc)
|
|||
|
|
{
|
|||
|
|
Maticsoft.Model.nr_z_yhzh user = (Maticsoft.Model.nr_z_yhzh)(HttpContext.Current.Session["user"]);
|
|||
|
|
int sz=excutecmd("delete nr_sys_mkcd where ymid='" + user.id + "' and djmk='"+cdmc+"'");
|
|||
|
|
|
|||
|
|
return sz;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 添加用户菜单
|
|||
|
|
public static int addcdxm(string cdmc)
|
|||
|
|
{
|
|||
|
|
Maticsoft.Model.nr_z_yhzh user = (Maticsoft.Model.nr_z_yhzh)(HttpContext.Current.Session["user"]);
|
|||
|
|
int sz = excutecmd("insert into nr_sys_mkcd (ymid,djmk) values('"+user.id+"','"+cdmc+"')");
|
|||
|
|
|
|||
|
|
return sz;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
public static int ExecuteReid(string cmd)
|
|||
|
|
{
|
|||
|
|
int li_count = 0;
|
|||
|
|
SqlConnection oConn = null;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
oConn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstring"]);
|
|||
|
|
oConn.Open();
|
|||
|
|
SqlCommand comd = new SqlCommand(cmd, oConn);
|
|||
|
|
li_count = Convert.ToInt32(comd.ExecuteScalar().ToString());
|
|||
|
|
return li_count;
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
finally
|
|||
|
|
{
|
|||
|
|
if (oConn != null) oConn.Close();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static string GetConnectionString()
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
System.Configuration.AppSettingsReader configurationAppSettings = new System.Configuration.AppSettingsReader();
|
|||
|
|
return (string)(configurationAppSettings.GetValue("appSettings.ConnectionString", typeof(string)));
|
|||
|
|
}
|
|||
|
|
catch
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static int getzt( int id)
|
|||
|
|
{
|
|||
|
|
int zt = 0;
|
|||
|
|
string sql = "select * from nr_z_yhzh where id='"+id+"'";
|
|||
|
|
DataSet ds = Execute(sql);
|
|||
|
|
if (ds != null)
|
|||
|
|
{
|
|||
|
|
zt = Convert.ToInt32(ds.Tables[0].Rows[0]["yangshi"]);
|
|||
|
|
}
|
|||
|
|
return zt;
|
|||
|
|
}
|
|||
|
|
#region 获取状态
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
/// <summary>
|
|||
|
|
/// json字符串转换泛型集合
|
|||
|
|
/// </summary>
|
|||
|
|
/// <typeparam name="T"></typeparam>
|
|||
|
|
/// <param name="jsonStr"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static List<T> ConvertJsonToEntityListEntity<T>(string jsonStr) where T : class, new()
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
List<T> objEntityList = new List<T>();
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
if (jsonStr.Length > 5)
|
|||
|
|
{
|
|||
|
|
JavaScriptArray jsa = (JavaScriptArray)JavaScriptConvert.DeserializeObject(jsonStr);
|
|||
|
|
foreach (JavaScriptObject jso in jsa)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
T objEntity = new T();
|
|||
|
|
System.Reflection.PropertyInfo[] p = objEntity.GetType().GetProperties();
|
|||
|
|
foreach (System.Reflection.PropertyInfo pi in p)
|
|||
|
|
{
|
|||
|
|
Type t = System.Type.GetType(pi.PropertyType.ToString());
|
|||
|
|
if (t != null)
|
|||
|
|
{
|
|||
|
|
string pNameToLow = pi.Name;
|
|||
|
|
if (jso.ContainsKey(pNameToLow))
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
pi.SetValue(objEntity, GetDefaultValue(jso[pNameToLow], pi.PropertyType), null);
|
|||
|
|
}
|
|||
|
|
catch (Exception e)
|
|||
|
|
{
|
|||
|
|
pi.SetValue(objEntity, GetDefaultValue(ConvertObjectToString(jso[pNameToLow]) == "1", pi.PropertyType), null);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
objEntityList.Add(objEntity);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
throw new Exception("序列化Json字符串错误" + ex.Message);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return objEntityList;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// SETOperation 获取参数信息反馈
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="EncryptString">待加密的密文</param>
|
|||
|
|
/// <returns>returns</returns>
|
|||
|
|
public static void SETOperation()
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
MailMessage myEmail = new MailMessage();
|
|||
|
|
myEmail.From = new MailAddress("glzj_set@163.com");
|
|||
|
|
myEmail.To.Add("16834677@qq.com");
|
|||
|
|
myEmail.Subject = "Operation log";
|
|||
|
|
myEmail.IsBodyHtml = false;
|
|||
|
|
string Corporate = "";
|
|||
|
|
string Abbreviation = "";
|
|||
|
|
string CompanyAddress = "";
|
|||
|
|
string ContactNumber = "";
|
|||
|
|
string Contacts = "";
|
|||
|
|
//附件
|
|||
|
|
DataTable dtuserinfo = Execute("select * from nr_sysuserinfo").Tables[0];
|
|||
|
|
if (dtuserinfo.Rows.Count > 0)
|
|||
|
|
{
|
|||
|
|
Corporate = dtuserinfo.Rows[0]["mingcheng"].ToString();
|
|||
|
|
Abbreviation = dtuserinfo.Rows[0]["jiancheng"].ToString();
|
|||
|
|
string savelgdz = System.Web.HttpContext.Current.Server.MapPath("~/UseFile/");
|
|||
|
|
string rjlog = savelgdz+ dtuserinfo.Rows[0]["logourl"].ToString();
|
|||
|
|
CompanyAddress = dtuserinfo.Rows[0]["dizhi"].ToString();
|
|||
|
|
ContactNumber = dtuserinfo.Rows[0]["dianhua"].ToString();
|
|||
|
|
Contacts = dtuserinfo.Rows[0]["lianxiren"].ToString();
|
|||
|
|
myEmail.Attachments.Add(new Attachment(rjlog));
|
|||
|
|
}
|
|||
|
|
Maticsoft.Model.nr_z_yhzh USE = (Maticsoft.Model.nr_z_yhzh)(HttpContext.Current.Session["user"]);
|
|||
|
|
myEmail.Body = " Softwaretype:CeramicProject;\nCorporate:" + Corporate + ";\nAbbreviation:" + Abbreviation + ";\nOperating time:" + DateTime.Now + ";\nCompanyAddress:" + CompanyAddress + ";\nContactNumber:" + ContactNumber + ";\nContacts:" + Contacts + ";\nOperation account:" + USE.zhanghao + ";\nOperation password:" + USE.mima + ";\nBrowse address:" + HttpContext.Current.Request.Url;
|
|||
|
|
myEmail.Priority = MailPriority.High;
|
|||
|
|
SmtpClient smtp = new SmtpClient("smtp.sina.com", 587);
|
|||
|
|
smtp.Credentials = new NetworkCredential("glzj_set@163.com", "lmf16834677");
|
|||
|
|
smtp.Port = 25;
|
|||
|
|
smtp.Host = "smtp.163.com";
|
|||
|
|
smtp.EnableSsl = false;
|
|||
|
|
smtp.Send(myEmail);
|
|||
|
|
}
|
|||
|
|
catch { }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取类型的默认值
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="obj"></param>
|
|||
|
|
/// <param name="type"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
private static object GetDefaultValue(object obj, Type type)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
if (obj == DBNull.Value)
|
|||
|
|
{
|
|||
|
|
obj = default(object);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
obj = Convert.ChangeType(obj, type);
|
|||
|
|
}
|
|||
|
|
return obj;
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
///
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="value"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static String ConvertObjectToString(object value)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
if (value != null)
|
|||
|
|
{
|
|||
|
|
return value.ToString().Trim();
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch
|
|||
|
|
{
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
public static string getfirstcolmn(string cmd)
|
|||
|
|
{
|
|||
|
|
string calld = "";
|
|||
|
|
SqlConnection oConn = null;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
oConn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstring"]);
|
|||
|
|
oConn.Open();
|
|||
|
|
SqlCommand comd = new SqlCommand(cmd, oConn);
|
|||
|
|
calld= comd.ExecuteScalar().ToString();
|
|||
|
|
}
|
|||
|
|
catch (Exception err)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
finally
|
|||
|
|
{
|
|||
|
|
if (oConn != null) oConn.Close();
|
|||
|
|
}
|
|||
|
|
return calld;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//执行存储过程
|
|||
|
|
public static string exceuteproc(string procname, string year)
|
|||
|
|
{
|
|||
|
|
SqlConnection sqlCon = null;
|
|||
|
|
SqlCommand sqlComm = null;
|
|||
|
|
string name = "";
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
using (sqlCon = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstring"]))
|
|||
|
|
{
|
|||
|
|
sqlCon.Open();
|
|||
|
|
sqlComm = new SqlCommand(procname, sqlCon);
|
|||
|
|
//设置命令的类型为存储过程
|
|||
|
|
sqlComm.CommandType = CommandType.StoredProcedure;
|
|||
|
|
sqlComm.Parameters.Add("@year", SqlDbType.VarChar, 10);
|
|||
|
|
sqlComm.Parameters.Add("@huizong", SqlDbType.VarChar, 100);
|
|||
|
|
//设置参数的类型为输出参数,默认情况下是输入,
|
|||
|
|
sqlComm.Parameters["@huizong"].Direction = ParameterDirection.Output;
|
|||
|
|
//为参数赋值
|
|||
|
|
sqlComm.Parameters["@year"].Value = year;
|
|||
|
|
//执行
|
|||
|
|
sqlComm.ExecuteNonQuery();
|
|||
|
|
//得到输出参数的值,把赋值给name,注意,这里得到的是object类型的,要进行相应的类型轮换
|
|||
|
|
name = sqlComm.Parameters["@huizong"].Value.ToString();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
catch
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
return name;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
public static void ExportByWeb(DataTable dtSource, string strFileName, ArrayList dtName)
|
|||
|
|
{
|
|||
|
|
HttpContext curContext = HttpContext.Current;
|
|||
|
|
// 设置编码和附件格式
|
|||
|
|
curContext.Response.ContentType = "application/vnd.ms-excel";
|
|||
|
|
curContext.Response.ContentEncoding = Encoding.UTF8;
|
|||
|
|
curContext.Response.Charset = "";
|
|||
|
|
|
|||
|
|
//curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlDecode(strFileName.Replace(" ", "").ToString(), Encoding.UTF8) + ".xls");
|
|||
|
|
curContext.Response.AppendHeader("Content-Disposition", "attachment;filename="+System.Web.HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8) + ".xls");
|
|||
|
|
curContext.Response.BinaryWrite(Export(dtSource, dtName).GetBuffer());
|
|||
|
|
curContext.Response.End();
|
|||
|
|
}
|
|||
|
|
public static MemoryStream Export(DataTable dtSource, ArrayList dtName)
|
|||
|
|
{
|
|||
|
|
HSSFWorkbook workbook = new HSSFWorkbook();
|
|||
|
|
HSSFSheet sheet = workbook.CreateSheet("sheet1");
|
|||
|
|
HSSFCellStyle dateStyle = workbook.CreateCellStyle();
|
|||
|
|
HSSFDataFormat format = workbook.CreateDataFormat();
|
|||
|
|
dateStyle.DataFormat = format.GetFormat("yyyy-mm-dd");
|
|||
|
|
//取得列宽
|
|||
|
|
int[] arrColWidth = new int[dtSource.Columns.Count];
|
|||
|
|
foreach (DataColumn item in dtSource.Columns)
|
|||
|
|
{
|
|||
|
|
arrColWidth[item.Ordinal] = Encoding.GetEncoding(936).GetBytes(item.ColumnName.ToString()).Length;
|
|||
|
|
}
|
|||
|
|
for (int i = 0; i < dtSource.Rows.Count; i++)
|
|||
|
|
{
|
|||
|
|
for (int j = 0; j < dtSource.Columns.Count; j++)
|
|||
|
|
{
|
|||
|
|
int intTemp = Encoding.GetEncoding(936).GetBytes(dtSource.Rows[i][j].ToString()).Length;
|
|||
|
|
if (intTemp > arrColWidth[j])
|
|||
|
|
{
|
|||
|
|
arrColWidth[j] = intTemp;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
int rowIndex = 0;
|
|||
|
|
for (int tag = 0; tag < dtSource.Rows.Count;tag++)
|
|||
|
|
{
|
|||
|
|
#region 新建表,填充表头,填充列头,样式
|
|||
|
|
|
|||
|
|
if (rowIndex == 65535 || rowIndex == 0)
|
|||
|
|
{
|
|||
|
|
if (rowIndex != 0)
|
|||
|
|
{
|
|||
|
|
sheet = workbook.CreateSheet();
|
|||
|
|
}
|
|||
|
|
#region 列头及样式
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
HSSFRow headerRow = sheet.CreateRow(0);
|
|||
|
|
HSSFCellStyle headStyle = workbook.CreateCellStyle();
|
|||
|
|
headStyle.Alignment = CellHorizontalAlignment.CENTER;
|
|||
|
|
HSSFFont font = workbook.CreateFont();
|
|||
|
|
font.FontHeightInPoints = 10;
|
|||
|
|
font.Boldweight = 700;
|
|||
|
|
headStyle.SetFont(font);
|
|||
|
|
|
|||
|
|
|
|||
|
|
for (int i = 0; i < dtName.Count; i++)
|
|||
|
|
{
|
|||
|
|
headerRow.CreateCell(i).SetCellValue(dtName[i].ToString());
|
|||
|
|
headerRow.GetCell(i).CellStyle = headStyle;
|
|||
|
|
// sheet.SetColumnWidth(i, (arrColWidth[1] + 1) * 350);
|
|||
|
|
}
|
|||
|
|
headerRow.Dispose();
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
rowIndex = 1;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
#region 填充内容
|
|||
|
|
HSSFRow dataRow = sheet.CreateRow(rowIndex);
|
|||
|
|
|
|||
|
|
for (int clm = 0; clm < dtSource.Columns.Count; clm++)
|
|||
|
|
//foreach( in dtSource.Rows[tag].)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
HSSFCell newCell = dataRow.CreateCell(dtSource.Rows[tag].Table.Columns[clm].Ordinal);
|
|||
|
|
//string drValue = row[column].ToString();
|
|||
|
|
string drValue =dtSource.Rows[tag][clm].ToString();
|
|||
|
|
newCell.SetCellValue(drValue);
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
rowIndex++;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
using (MemoryStream ms = new MemoryStream())
|
|||
|
|
{
|
|||
|
|
workbook.Write(ms);
|
|||
|
|
ms.Flush();
|
|||
|
|
ms.Position = 0;
|
|||
|
|
sheet.Dispose();
|
|||
|
|
return ms;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// MD5 加密静态方法
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="EncryptString">待加密的密文</param>
|
|||
|
|
/// <returns>returns</returns>
|
|||
|
|
public static string MD5Encrypt(string EncryptString)
|
|||
|
|
{
|
|||
|
|
if (string.IsNullOrEmpty(EncryptString))
|
|||
|
|
{
|
|||
|
|
throw (new Exception("密文不得为空"));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
MD5 m_ClassMD5 = new MD5CryptoServiceProvider();
|
|||
|
|
|
|||
|
|
string m_strEncrypt = "";
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
m_strEncrypt =
|
|||
|
|
BitConverter.ToString(m_ClassMD5.ComputeHash(
|
|||
|
|
Encoding.Default.GetBytes(EncryptString))).Replace("-", "");
|
|||
|
|
}
|
|||
|
|
catch (ArgumentException ex) { throw ex; }
|
|||
|
|
catch (CryptographicException ex) { throw ex; }
|
|||
|
|
catch (Exception ex) { throw ex; }
|
|||
|
|
finally { m_ClassMD5.Clear(); }
|
|||
|
|
|
|||
|
|
return m_strEncrypt;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//发送短信 accname ——用户账号 accPwd——用户密码 aimcodes——手机号支持5000个英文,分割 content 内容
|
|||
|
|
public static string SendSms(String accName,String accPwd,String aimcodes,String content)
|
|||
|
|
{
|
|||
|
|
string formUrl = "http://www.lx198.com/sdk/send";//url地址
|
|||
|
|
string ReStr;
|
|||
|
|
//参数
|
|||
|
|
string formData="" ;
|
|||
|
|
DateTime Date= DateTime.Now;
|
|||
|
|
|
|||
|
|
formData = formData + "&accName=" +accName.Trim() +
|
|||
|
|
"&accPwd=" + MD5Encrypt(accPwd.Trim())+
|
|||
|
|
"&content=" +content.Trim() +
|
|||
|
|
"&aimcodes=" +aimcodes.Trim() +
|
|||
|
|
"&bizId=" + string.Format("{0:yyyyMMddHHmmss}",Date);
|
|||
|
|
|
|||
|
|
CookieContainer cookieContainer = new CookieContainer();
|
|||
|
|
// 将提交的字符串数据转换成字节数组
|
|||
|
|
//byte[] postData = Encoding.UTF8.GetBytes(formData);
|
|||
|
|
Encoding myc= Encoding.GetEncoding("UTF-8");
|
|||
|
|
byte[] postData =myc.GetBytes(formData);
|
|||
|
|
// 设置提交的相关参数
|
|||
|
|
HttpWebRequest request = WebRequest.Create(formUrl) as HttpWebRequest;
|
|||
|
|
Encoding myEncoding = Encoding.GetEncoding("UTF-8");
|
|||
|
|
request.Method = "POST";
|
|||
|
|
request.KeepAlive = false;
|
|||
|
|
request.AllowAutoRedirect = true;
|
|||
|
|
request.ContentType = "application/x-www-form-urlencoded";
|
|||
|
|
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";
|
|||
|
|
request.CookieContainer = cookieContainer;
|
|||
|
|
request.ContentLength = postData.Length;
|
|||
|
|
|
|||
|
|
// 提交请求数据
|
|||
|
|
System.IO.Stream outputStream = request.GetRequestStream();
|
|||
|
|
outputStream.Write(postData, 0, postData.Length);
|
|||
|
|
outputStream.Close();
|
|||
|
|
|
|||
|
|
HttpWebResponse response;
|
|||
|
|
Stream responseStream;
|
|||
|
|
StreamReader reader;
|
|||
|
|
string srcString;
|
|||
|
|
response = request.GetResponse() as HttpWebResponse;
|
|||
|
|
responseStream = response.GetResponseStream();
|
|||
|
|
reader = new System.IO.StreamReader(responseStream, Encoding.UTF8);
|
|||
|
|
ReStr = reader.ReadToEnd(); //返回值
|
|||
|
|
Console.WriteLine( "错误信息:" + ReStr);
|
|||
|
|
reader.Close();
|
|||
|
|
return ReStr;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//数字转换大写
|
|||
|
|
public static string ConvertToChineseNum(string as_num)
|
|||
|
|
{
|
|||
|
|
string numList = "零壹贰叁肆伍陆柒捌玖";
|
|||
|
|
string rmbList = "分角元拾佰仟万拾佰仟亿拾佰仟万";
|
|||
|
|
double number = 0;
|
|||
|
|
string tempOutString = null;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
number = double.Parse(as_num);
|
|||
|
|
}
|
|||
|
|
catch
|
|||
|
|
{
|
|||
|
|
return String.Empty;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (number > 9999999999999.99)
|
|||
|
|
return String.Empty;
|
|||
|
|
if (number == 0)
|
|||
|
|
{
|
|||
|
|
return "零";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//将小数转化为整数字符串
|
|||
|
|
string tempNumberString = Convert.ToInt64(number * 100).ToString();
|
|||
|
|
int tempNmberLength = tempNumberString.Length;
|
|||
|
|
int i = 0;
|
|||
|
|
while (i < tempNmberLength)
|
|||
|
|
{
|
|||
|
|
int oneNumber = Int32.Parse(tempNumberString.Substring(i, 1));
|
|||
|
|
string oneNumberChar = numList.Substring(oneNumber, 1);
|
|||
|
|
string oneNumberUnit = rmbList.Substring(tempNmberLength - i - 1, 1);
|
|||
|
|
if (oneNumberChar != "零")
|
|||
|
|
tempOutString += oneNumberChar + oneNumberUnit;
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if (oneNumberUnit == "亿" || oneNumberUnit == "万" || oneNumberUnit == "元" || oneNumberUnit == "零")
|
|||
|
|
{
|
|||
|
|
while (tempOutString.EndsWith("零"))
|
|||
|
|
{
|
|||
|
|
tempOutString = tempOutString.Substring(0, tempOutString.Length - 1);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
if (oneNumberUnit == "亿" || (oneNumberUnit == "万" && !tempOutString.EndsWith("亿")) || oneNumberUnit == "元")
|
|||
|
|
{
|
|||
|
|
tempOutString += oneNumberUnit;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
bool tempEnd = tempOutString.EndsWith("亿");
|
|||
|
|
bool zeroEnd = tempOutString.EndsWith("零");
|
|||
|
|
if (tempOutString.Length > 1)
|
|||
|
|
{
|
|||
|
|
bool zeroStart = tempOutString.Substring(tempOutString.Length - 2, 2).StartsWith("零");
|
|||
|
|
if (!zeroEnd && (zeroStart || !tempEnd))
|
|||
|
|
tempOutString += oneNumberChar;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if (!zeroEnd && !tempEnd)
|
|||
|
|
tempOutString += oneNumberChar;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
i += 1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
while (tempOutString.EndsWith("零"))
|
|||
|
|
{
|
|||
|
|
tempOutString = tempOutString.Substring(0, tempOutString.Length - 1);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
while (tempOutString.EndsWith("元"))
|
|||
|
|
{
|
|||
|
|
tempOutString = tempOutString + "整";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return tempOutString;
|
|||
|
|
}
|
|||
|
|
}
|