C#导出excel或csv文件
2013-09-12 10:30
357 查看
[align=left]方法一:[/align]
[align=left]Model:[/align]
[align=left] public class Execlinfo[/align]
[align=left] {[/align]
public int UserID
{ get; set;
}
public string UserName
{ get; set;
}
public string Password
{ get; set;
}
public string PasswordSalt
{ get; set;
}
public string PasswordFormat
{ get; set;
}
public string AccountStatus
{ get; set;
}
public string TrueName
{ get; set;
}
public string Phone
{ get; set;
}
public string Mobile
{ get; set;
}
public string Email
{ get; set;
}
public string Address
{ get; set;
}
public string SN
{ get; set;
}
public string CompanyName
{ get; set;
}
public string Gender
{ get; set;
}
public string Zip
{ get; set;
}
public string Position
{ get; set;
}
public string Sequence
{ get; set;
}
public string Description
{ get; set;
}
public string Permission
{ get; set;
}
public string NickName
{ get; set;
}
public DateTime BirthDay
{ get; set;
}
public string RegisterSite
{ get; set;
}
public string ProvinceID
{ get; set;
}
public string CityID
{ get; set;
}
public string Subscription
{ get; set;
}
public string Signature
{ get; set;
}
public string CardNumber
{ get; set;
}
public string CardPoints
{ get; set;
}
public string Balance
{ get; set;
}
public string CardType
{ get; set;
}
public string TotalPoints
{ get; set;
}
[align=left] }[/align]
[align=left]
[/align]
[align=left]Dao:[/align]
public IList<Execlinfo>
execlout()
[align=left] {[/align]
string sql
= @"select u.UserID,u.UserName,u.Password,u.PasswordSalt,u.PasswordFormat,u.AccountStatus,me.TrueName,
[align=left] me.Phone,me.Mobile,me.Email,me.Address,me.SN,me.CompanyName,me.Gender,me.Zip,me.Position,[/align]
[align=left] me.Sequence,me.Description,me.Permission,me.NickName,me.BirthDay,me.RegisterSite,me.ProvinceID,[/align]
[align=left] me.CityID,me.Subscription,me.Signature,mem.CardNumber,mem.CardPoints,mem.Balance,mem.CardType,mem.TotalPoints[/align]
[align=left] from dn_user as u inner join dn_membership me on u.UserId=me.UserID inner join[/align]
[align=left] dn_membershipcard mem on me.UserID=mem.UserID";[/align]
DnDataReader dnreader
= new DnDataReader(this);
IList<Execlinfo>
list = new List<Execlinfo>();
[align=left] try[/align]
[align=left] {[/align]
IDataReader dr
= dnreader.ExecuteReader(sql);
[align=left] while (dr.Read())[/align]
[align=left] {[/align]
Execlinfo info
= getinfo(dr);
[align=left] list.Add(info);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] finally[/align]
[align=left] {[/align]
[align=left] dnreader.Close();[/align]
[align=left] }[/align]
[align=left] return list;[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] public Execlinfo getinfo(IDataReader dr)[/align]
[align=left] {[/align]
Execlinfo info
= new Execlinfo();
[align=left] info.UserName = dr["UserName"].ToString();[/align]
[align=left] info.Password = dr["Password"].ToString();[/align]
[align=left] info.PasswordSalt = dr["PasswordSalt"].ToString();[/align]
[align=left] info.PasswordFormat = dr["PasswordFormat"].ToString();[/align]
[align=left] info.AccountStatus = dr["AccountStatus"].ToString();[/align]
[align=left] info.Phone = dr["Phone"].ToString();[/align]
[align=left] info.Mobile = dr["Mobile"].ToString();[/align]
[align=left] info.Email = dr["Email"].ToString();[/align]
[align=left] info.Address = dr["Address"].ToString();[/align]
[align=left] info.SN = dr["SN"].ToString();[/align]
[align=left] info.CompanyName = dr["CompanyName"].ToString();[/align]
[align=left] info.Gender = dr["Gender"].ToString();[/align]
[align=left] info.Zip = dr["Zip"].ToString();[/align]
[align=left] info.Position = dr["Position"].ToString();[/align]
[align=left] info.Sequence = dr["Sequence"].ToString();[/align]
[align=left] info.Description = dr["Description"].ToString();[/align]
[align=left] info.Permission = dr["Permission"].ToString();[/align]
[align=left] info.NickName = dr["NickName"].ToString();[/align]
[align=left]
[/align]
info.BirthDay = dr["BirthDay"]
!= Convert.DBNull ? Convert.ToDateTime(dr["BirthDay"])
: DateTime.MinValue;
[align=left] info.RegisterSite = dr["RegisterSite"].ToString();[/align]
[align=left] info.ProvinceID = dr["ProvinceID"].ToString();[/align]
[align=left] info.CityID = dr["CityID"].ToString();[/align]
[align=left] info.Signature = dr["Signature"].ToString();[/align]
[align=left] info.CardNumber = dr["CardNumber"].ToString();[/align]
[align=left] info.CardPoints = dr["CardPoints"].ToString();[/align]
[align=left] info.Balance = dr["Balance"].ToString();[/align]
[align=left] info.CardType = dr["CardType"].ToString();[/align]
[align=left] info.TotalPoints = dr["TotalPoints"].ToString();[/align]
[align=left] info.UserID = Convert.ToInt32(dr["UserID"]);[/align]
[align=left] return info;[/align]
[align=left] }[/align]
control层:
[align=left] public void ExeclDown()[/align]
[align=left] {[/align]
string tablecontent
= Getoutexecl();
[align=left] if (!string.IsNullOrEmpty(tablecontent))[/align]
[align=left] {[/align]
if (!string.IsNullOrEmpty(Request.QueryString["role"])
&& Request.QueryString["role"] == "2")
[align=left] {[/align]
ExportExcel("移动会员数据.xls",
Getoutexecl());
[align=left] }[/align]
[align=left] else[/align]
[align=left] {[/align]
ExportExcel("网站会员数据.xls",
Getoutexecl());
[align=left] }[/align]
[align=left]
[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] public string Getoutexecl()[/align]
[align=left] {[/align]
IList<Execlinfo>
lt = iuser.execlout();
if (!string.IsNullOrEmpty(Request.QueryString["role"])
&& Request.QueryString["role"] == "2")
[align=left] {[/align]
[align=left] lt = lt.Where(c => c.Signature != "网站会员" &&UserUtils.GetUserInfo(c.UserID).ContainsRole(300)).ToList();[/align]
[align=left] //list = list.Where(c => c.ContainsRole(100)).ToList();[/align]
[align=left] }[/align]
[align=left] else[/align]
[align=left] {[/align]
[align=left] lt = lt.Where(c => c.Signature == "网站会员" && UserUtils.GetUserInfo(c.UserID).ContainsRole(100)).ToList();[/align]
[align=left] }[/align]
StringBuilder builder
= new StringBuilder();
[align=left] builder.Append("<table border='1'>");[/align]
[align=left] builder.Append("<tr>");[/align]
builder.Append("<th style='text-align:center;background:#F3F3F3;'>UserName
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Password
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>PasswordSalt
</th>");
builder.Append("<th style='mso-number-format:'\\@';text-align:center;background:#F3F3F3;'>PasswordFormat
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>AccountStatus
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>TrueName
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Phone
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Mobile
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Email
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Address
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>SN
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>CompanyName
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Gender
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Zip
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Position
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Sequence
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Description
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Permission
</th>");
builder.Append("<th style='mso-number-format:'\\@';text-align:center;background:#F3F3F3;'>NickName
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>BirthDay
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>RegisterSite
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>ProvinceID
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>CityID
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Subscription
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Signature
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>CardPoints
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Balance
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>CardType
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>TotalPoints
</th>");
[align=left]
[/align]
[align=left] builder.Append("</tr>");[/align]
[align=left] foreach (Execlinfo t in lt)[/align]
[align=left] {[/align]
builder.Append("<td style='text-align:center;'>" +
t.UserName + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Password + "</td>");
builder.Append("<td style='mso-number-format:\\@;text-align:center;'>" +
t.PasswordSalt + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.PasswordFormat + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.AccountStatus + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.TrueName + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Phone + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Mobile + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Email + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Address + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.SN + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.CompanyName + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Gender + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Zip + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Position + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Sequence + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Description + "</td>");
builder.Append("<td style='mso-number-format:\\@;text-align:center;'>" +
t.Permission + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.NickName + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.BirthDay.ToString("yyyy-MM-dd") + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.RegisterSite + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.ProvinceID + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.CityID + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Subscription + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Signature + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.CardPoints + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Balance + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.CardType + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.TotalPoints + "</td>");
[align=left] builder.Append("</tr>");[/align]
[align=left] }[/align]
[align=left] builder.Append("</table>");[/align]
[align=left] return builder.ToString();[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] public void ExportExcel(string FileName, string tableContent)[/align]
[align=left] {[/align]
[align=left] //byte[] byteArray = Encoding.UTF8.GetBytes(tableContent);[/align]
//byteArray = Encoding.Convert(Encoding.UTF8,
Encoding.GetEncoding("gb2312"), byteArray);
byte[]
byteArray = Encoding.GetEncoding("gb2312").GetBytes(tableContent);
[align=left] System.Web.HttpContext.Current.Response.Clear();[/align]
[align=left] System.Web.HttpContext.Current.Response.ClearContent();[/align]
[align=left] System.Web.HttpContext.Current.Response.ClearHeaders();[/align]
System.Web.HttpContext.Current.Response.Charset
= "utf-8";
[align=left] HttpContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");[/align]
string userAgent
= System.Web.HttpContext.Current.Request.ServerVariables["http_user_agent"].ToLower();
[align=left] if (userAgent.Contains("firefox"))[/align]
[align=left] {[/align]
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" +
FileName);
[align=left] }[/align]
[align=left] else[/align]
[align=left] {[/align]
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" +
System.Web.HttpContext.Current.Server.UrlEncode(FileName));
[align=left] }[/align]
System.Web.HttpContext.Current.Response.AddHeader("Content-Length",
byteArray.Length.ToString());
System.Web.HttpContext.Current.Response.ContentType
= "application/ms-excel";
[align=left] System.Web.HttpContext.Current.Response.BinaryWrite(byteArray);[/align]
[align=left] System.Web.HttpContext.Current.Response.Flush();[/align]
[align=left] System.Web.HttpContext.Current.Response.Close();[/align]
[align=left] System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest();[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]方法二:[/align]
[align=left]
[/align]
[align=left] public void ExportToExcelOfficeALLByAdditional()[/align]
[align=left] {[/align]
[align=left] SearchAdditionalRun search;[/align]
string excelstr
= "";
string name
= Request.QueryString["name"];
string date
= Request.QueryString["date"];
if (date
== "ALL")
[align=left] {[/align]
[align=left] search = new SearchAdditionalRun[/align]
[align=left] {[/align]
[align=left] SearchType = SearchTypeEnum.Total,[/align]
[align=left] Status = StatusEnum.Active,[/align]
[align=left] };[/align]
[align=left] }[/align]
[align=left] else[/align]
[align=left] {[/align]
[align=left] search = new SearchAdditionalRun[/align]
[align=left] {[/align]
[align=left] ActualDate = date.ToInteger(),[/align]
[align=left] SearchType = SearchTypeEnum.Total,[/align]
[align=left] Status = StatusEnum.Active,[/align]
[align=left] };[/align]
[align=left] }[/align]
IList<AdditionalRunInfo>
info = iadditionalrun.Search(search);
[align=left] #region AdditionalRunInfo导出字段[/align]
string strNull
= "";
[align=left] excelstr = "AdditionalRunID" + "," +[/align]
[align=left] "RequestDescription" + "," +[/align]
[align=left] "ReasonID" + "," +[/align]
[align=left] "Reason" + "," +[/align]
[align=left] "DateRaised" + "," +[/align]
[align=left] "ExpectedDate" + "," +[/align]
[align=left] "ActualDate" + "," +[/align]
[align=left] "ProjectID" + "," +[/align]
"Project
#" + "," +
[align=left] "ProjectName" + "," +[/align]
[align=left] "InsertTime" + "," +[/align]
[align=left] "LastChanged" + "," +[/align]
"Status" + "\n";//标题
[align=left] #endregion[/align]
foreach (AdditionalRunInfo
item in info)
[align=left] {[/align]
[align=left] #region AdditionalRunInfo导出字段[/align]
string DateRaised
= item.DateRaised == DateTime.MinValue ? "" :
item.DateRaised.ToString("yyyy-MM-dd");
string ExpectedDate
= item.ExpectedDate == DateTime.MinValue ? "" :
item.ExpectedDate.ToString("yyyy-MM-dd");
string InsertTime
= item.InsertTime == DateTime.MinValue ? "" :
item.InsertTime.ToString("yyyy-MM-dd");
string LastChanged
= item.LastChanged == DateTime.MinValue ? "" :
item.LastChanged.ToString("yyyy-MM-dd");
string ProjectNumber
= ibkfm.GetBKFM(item.ProjectID).ProjectNumber;
string ProjectName
= ibkfm.GetBKFM(item.ProjectID).ProjectName;
string Reason
= isimplecategory.GetSimpleCategoryInfo(item.ReasonID).GetLangInfo(LanguageTypeEnum.Chinese).CategoryName;
[align=left] excelstr += item.AdditionalRunID + "," +[/align]
[align=left] StringFormat(item.RequestDescription) + "," +[/align]
[align=left] item.ReasonID + "," +[/align]
[align=left] Reason + "," +[/align]
[align=left] DateRaised + "," +[/align]
[align=left] ExpectedDate + "," +[/align]
[align=left] date + "," +[/align]
[align=left] item.ProjectID + "," +[/align]
[align=left] ProjectNumber + "," +[/align]
[align=left] ProjectName + "," +[/align]
[align=left] InsertTime + "," +[/align]
[align=left] LastChanged + "," +[/align]
item.Status + "\n";//标题
[align=left] #endregion[/align]
[align=left] }[/align]
string url
= Server.MapPath("~\\fileupload\\") + name + ".csv";//要存储的路径
string path
= "/fileupload/" + name + ".csv";//导出文件的相对路径,用于下载
StreamWriter sw
= new StreamWriter(url, false, Encoding.GetEncoding("GB2312"));//把文件作为文件流保存在固定的路径
[align=left] sw.Write(excelstr);// 文件流写出[/align]
[align=left] sw.Flush();//判断是否有文件,如果有则删除[/align]
[align=left] sw.Dispose();//释放流的资源[/align]
Response.Write("" +
path + "");//输出文件相对路径
[align=left] }[/align]
[align=left]Model:[/align]
[align=left] public class Execlinfo[/align]
[align=left] {[/align]
public int UserID
{ get; set;
}
public string UserName
{ get; set;
}
public string Password
{ get; set;
}
public string PasswordSalt
{ get; set;
}
public string PasswordFormat
{ get; set;
}
public string AccountStatus
{ get; set;
}
public string TrueName
{ get; set;
}
public string Phone
{ get; set;
}
public string Mobile
{ get; set;
}
public string Email
{ get; set;
}
public string Address
{ get; set;
}
public string SN
{ get; set;
}
public string CompanyName
{ get; set;
}
public string Gender
{ get; set;
}
public string Zip
{ get; set;
}
public string Position
{ get; set;
}
public string Sequence
{ get; set;
}
public string Description
{ get; set;
}
public string Permission
{ get; set;
}
public string NickName
{ get; set;
}
public DateTime BirthDay
{ get; set;
}
public string RegisterSite
{ get; set;
}
public string ProvinceID
{ get; set;
}
public string CityID
{ get; set;
}
public string Subscription
{ get; set;
}
public string Signature
{ get; set;
}
public string CardNumber
{ get; set;
}
public string CardPoints
{ get; set;
}
public string Balance
{ get; set;
}
public string CardType
{ get; set;
}
public string TotalPoints
{ get; set;
}
[align=left] }[/align]
[align=left]
[/align]
[align=left]Dao:[/align]
public IList<Execlinfo>
execlout()
[align=left] {[/align]
string sql
= @"select u.UserID,u.UserName,u.Password,u.PasswordSalt,u.PasswordFormat,u.AccountStatus,me.TrueName,
[align=left] me.Phone,me.Mobile,me.Email,me.Address,me.SN,me.CompanyName,me.Gender,me.Zip,me.Position,[/align]
[align=left] me.Sequence,me.Description,me.Permission,me.NickName,me.BirthDay,me.RegisterSite,me.ProvinceID,[/align]
[align=left] me.CityID,me.Subscription,me.Signature,mem.CardNumber,mem.CardPoints,mem.Balance,mem.CardType,mem.TotalPoints[/align]
[align=left] from dn_user as u inner join dn_membership me on u.UserId=me.UserID inner join[/align]
[align=left] dn_membershipcard mem on me.UserID=mem.UserID";[/align]
DnDataReader dnreader
= new DnDataReader(this);
IList<Execlinfo>
list = new List<Execlinfo>();
[align=left] try[/align]
[align=left] {[/align]
IDataReader dr
= dnreader.ExecuteReader(sql);
[align=left] while (dr.Read())[/align]
[align=left] {[/align]
Execlinfo info
= getinfo(dr);
[align=left] list.Add(info);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] finally[/align]
[align=left] {[/align]
[align=left] dnreader.Close();[/align]
[align=left] }[/align]
[align=left] return list;[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] public Execlinfo getinfo(IDataReader dr)[/align]
[align=left] {[/align]
Execlinfo info
= new Execlinfo();
[align=left] info.UserName = dr["UserName"].ToString();[/align]
[align=left] info.Password = dr["Password"].ToString();[/align]
[align=left] info.PasswordSalt = dr["PasswordSalt"].ToString();[/align]
[align=left] info.PasswordFormat = dr["PasswordFormat"].ToString();[/align]
[align=left] info.AccountStatus = dr["AccountStatus"].ToString();[/align]
[align=left] info.Phone = dr["Phone"].ToString();[/align]
[align=left] info.Mobile = dr["Mobile"].ToString();[/align]
[align=left] info.Email = dr["Email"].ToString();[/align]
[align=left] info.Address = dr["Address"].ToString();[/align]
[align=left] info.SN = dr["SN"].ToString();[/align]
[align=left] info.CompanyName = dr["CompanyName"].ToString();[/align]
[align=left] info.Gender = dr["Gender"].ToString();[/align]
[align=left] info.Zip = dr["Zip"].ToString();[/align]
[align=left] info.Position = dr["Position"].ToString();[/align]
[align=left] info.Sequence = dr["Sequence"].ToString();[/align]
[align=left] info.Description = dr["Description"].ToString();[/align]
[align=left] info.Permission = dr["Permission"].ToString();[/align]
[align=left] info.NickName = dr["NickName"].ToString();[/align]
[align=left]
[/align]
info.BirthDay = dr["BirthDay"]
!= Convert.DBNull ? Convert.ToDateTime(dr["BirthDay"])
: DateTime.MinValue;
[align=left] info.RegisterSite = dr["RegisterSite"].ToString();[/align]
[align=left] info.ProvinceID = dr["ProvinceID"].ToString();[/align]
[align=left] info.CityID = dr["CityID"].ToString();[/align]
[align=left] info.Signature = dr["Signature"].ToString();[/align]
[align=left] info.CardNumber = dr["CardNumber"].ToString();[/align]
[align=left] info.CardPoints = dr["CardPoints"].ToString();[/align]
[align=left] info.Balance = dr["Balance"].ToString();[/align]
[align=left] info.CardType = dr["CardType"].ToString();[/align]
[align=left] info.TotalPoints = dr["TotalPoints"].ToString();[/align]
[align=left] info.UserID = Convert.ToInt32(dr["UserID"]);[/align]
[align=left] return info;[/align]
[align=left] }[/align]
control层:
[align=left] public void ExeclDown()[/align]
[align=left] {[/align]
string tablecontent
= Getoutexecl();
[align=left] if (!string.IsNullOrEmpty(tablecontent))[/align]
[align=left] {[/align]
if (!string.IsNullOrEmpty(Request.QueryString["role"])
&& Request.QueryString["role"] == "2")
[align=left] {[/align]
ExportExcel("移动会员数据.xls",
Getoutexecl());
[align=left] }[/align]
[align=left] else[/align]
[align=left] {[/align]
ExportExcel("网站会员数据.xls",
Getoutexecl());
[align=left] }[/align]
[align=left]
[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] public string Getoutexecl()[/align]
[align=left] {[/align]
IList<Execlinfo>
lt = iuser.execlout();
if (!string.IsNullOrEmpty(Request.QueryString["role"])
&& Request.QueryString["role"] == "2")
[align=left] {[/align]
[align=left] lt = lt.Where(c => c.Signature != "网站会员" &&UserUtils.GetUserInfo(c.UserID).ContainsRole(300)).ToList();[/align]
[align=left] //list = list.Where(c => c.ContainsRole(100)).ToList();[/align]
[align=left] }[/align]
[align=left] else[/align]
[align=left] {[/align]
[align=left] lt = lt.Where(c => c.Signature == "网站会员" && UserUtils.GetUserInfo(c.UserID).ContainsRole(100)).ToList();[/align]
[align=left] }[/align]
StringBuilder builder
= new StringBuilder();
[align=left] builder.Append("<table border='1'>");[/align]
[align=left] builder.Append("<tr>");[/align]
builder.Append("<th style='text-align:center;background:#F3F3F3;'>UserName
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Password
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>PasswordSalt
</th>");
builder.Append("<th style='mso-number-format:'\\@';text-align:center;background:#F3F3F3;'>PasswordFormat
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>AccountStatus
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>TrueName
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Phone
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Mobile
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Email
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Address
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>SN
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>CompanyName
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Gender
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Zip
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Position
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Sequence
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Description
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Permission
</th>");
builder.Append("<th style='mso-number-format:'\\@';text-align:center;background:#F3F3F3;'>NickName
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>BirthDay
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>RegisterSite
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>ProvinceID
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>CityID
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Subscription
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Signature
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>CardPoints
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>Balance
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>CardType
</th>");
builder.Append("<th style='text-align:center;background:#F3F3F3;'>TotalPoints
</th>");
[align=left]
[/align]
[align=left] builder.Append("</tr>");[/align]
[align=left] foreach (Execlinfo t in lt)[/align]
[align=left] {[/align]
builder.Append("<td style='text-align:center;'>" +
t.UserName + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Password + "</td>");
builder.Append("<td style='mso-number-format:\\@;text-align:center;'>" +
t.PasswordSalt + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.PasswordFormat + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.AccountStatus + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.TrueName + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Phone + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Mobile + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Email + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Address + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.SN + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.CompanyName + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Gender + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Zip + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Position + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Sequence + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Description + "</td>");
builder.Append("<td style='mso-number-format:\\@;text-align:center;'>" +
t.Permission + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.NickName + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.BirthDay.ToString("yyyy-MM-dd") + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.RegisterSite + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.ProvinceID + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.CityID + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Subscription + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Signature + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.CardPoints + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.Balance + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.CardType + "</td>");
builder.Append("<td style='text-align:center;'>" +
t.TotalPoints + "</td>");
[align=left] builder.Append("</tr>");[/align]
[align=left] }[/align]
[align=left] builder.Append("</table>");[/align]
[align=left] return builder.ToString();[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left] public void ExportExcel(string FileName, string tableContent)[/align]
[align=left] {[/align]
[align=left] //byte[] byteArray = Encoding.UTF8.GetBytes(tableContent);[/align]
//byteArray = Encoding.Convert(Encoding.UTF8,
Encoding.GetEncoding("gb2312"), byteArray);
byte[]
byteArray = Encoding.GetEncoding("gb2312").GetBytes(tableContent);
[align=left] System.Web.HttpContext.Current.Response.Clear();[/align]
[align=left] System.Web.HttpContext.Current.Response.ClearContent();[/align]
[align=left] System.Web.HttpContext.Current.Response.ClearHeaders();[/align]
System.Web.HttpContext.Current.Response.Charset
= "utf-8";
[align=left] HttpContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");[/align]
string userAgent
= System.Web.HttpContext.Current.Request.ServerVariables["http_user_agent"].ToLower();
[align=left] if (userAgent.Contains("firefox"))[/align]
[align=left] {[/align]
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" +
FileName);
[align=left] }[/align]
[align=left] else[/align]
[align=left] {[/align]
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" +
System.Web.HttpContext.Current.Server.UrlEncode(FileName));
[align=left] }[/align]
System.Web.HttpContext.Current.Response.AddHeader("Content-Length",
byteArray.Length.ToString());
System.Web.HttpContext.Current.Response.ContentType
= "application/ms-excel";
[align=left] System.Web.HttpContext.Current.Response.BinaryWrite(byteArray);[/align]
[align=left] System.Web.HttpContext.Current.Response.Flush();[/align]
[align=left] System.Web.HttpContext.Current.Response.Close();[/align]
[align=left] System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest();[/align]
[align=left] }[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]方法二:[/align]
[align=left]
[/align]
[align=left] public void ExportToExcelOfficeALLByAdditional()[/align]
[align=left] {[/align]
[align=left] SearchAdditionalRun search;[/align]
string excelstr
= "";
string name
= Request.QueryString["name"];
string date
= Request.QueryString["date"];
if (date
== "ALL")
[align=left] {[/align]
[align=left] search = new SearchAdditionalRun[/align]
[align=left] {[/align]
[align=left] SearchType = SearchTypeEnum.Total,[/align]
[align=left] Status = StatusEnum.Active,[/align]
[align=left] };[/align]
[align=left] }[/align]
[align=left] else[/align]
[align=left] {[/align]
[align=left] search = new SearchAdditionalRun[/align]
[align=left] {[/align]
[align=left] ActualDate = date.ToInteger(),[/align]
[align=left] SearchType = SearchTypeEnum.Total,[/align]
[align=left] Status = StatusEnum.Active,[/align]
[align=left] };[/align]
[align=left] }[/align]
IList<AdditionalRunInfo>
info = iadditionalrun.Search(search);
[align=left] #region AdditionalRunInfo导出字段[/align]
string strNull
= "";
[align=left] excelstr = "AdditionalRunID" + "," +[/align]
[align=left] "RequestDescription" + "," +[/align]
[align=left] "ReasonID" + "," +[/align]
[align=left] "Reason" + "," +[/align]
[align=left] "DateRaised" + "," +[/align]
[align=left] "ExpectedDate" + "," +[/align]
[align=left] "ActualDate" + "," +[/align]
[align=left] "ProjectID" + "," +[/align]
"Project
#" + "," +
[align=left] "ProjectName" + "," +[/align]
[align=left] "InsertTime" + "," +[/align]
[align=left] "LastChanged" + "," +[/align]
"Status" + "\n";//标题
[align=left] #endregion[/align]
foreach (AdditionalRunInfo
item in info)
[align=left] {[/align]
[align=left] #region AdditionalRunInfo导出字段[/align]
string DateRaised
= item.DateRaised == DateTime.MinValue ? "" :
item.DateRaised.ToString("yyyy-MM-dd");
string ExpectedDate
= item.ExpectedDate == DateTime.MinValue ? "" :
item.ExpectedDate.ToString("yyyy-MM-dd");
string InsertTime
= item.InsertTime == DateTime.MinValue ? "" :
item.InsertTime.ToString("yyyy-MM-dd");
string LastChanged
= item.LastChanged == DateTime.MinValue ? "" :
item.LastChanged.ToString("yyyy-MM-dd");
string ProjectNumber
= ibkfm.GetBKFM(item.ProjectID).ProjectNumber;
string ProjectName
= ibkfm.GetBKFM(item.ProjectID).ProjectName;
string Reason
= isimplecategory.GetSimpleCategoryInfo(item.ReasonID).GetLangInfo(LanguageTypeEnum.Chinese).CategoryName;
[align=left] excelstr += item.AdditionalRunID + "," +[/align]
[align=left] StringFormat(item.RequestDescription) + "," +[/align]
[align=left] item.ReasonID + "," +[/align]
[align=left] Reason + "," +[/align]
[align=left] DateRaised + "," +[/align]
[align=left] ExpectedDate + "," +[/align]
[align=left] date + "," +[/align]
[align=left] item.ProjectID + "," +[/align]
[align=left] ProjectNumber + "," +[/align]
[align=left] ProjectName + "," +[/align]
[align=left] InsertTime + "," +[/align]
[align=left] LastChanged + "," +[/align]
item.Status + "\n";//标题
[align=left] #endregion[/align]
[align=left] }[/align]
string url
= Server.MapPath("~\\fileupload\\") + name + ".csv";//要存储的路径
string path
= "/fileupload/" + name + ".csv";//导出文件的相对路径,用于下载
StreamWriter sw
= new StreamWriter(url, false, Encoding.GetEncoding("GB2312"));//把文件作为文件流保存在固定的路径
[align=left] sw.Write(excelstr);// 文件流写出[/align]
[align=left] sw.Flush();//判断是否有文件,如果有则删除[/align]
[align=left] sw.Dispose();//释放流的资源[/align]
Response.Write("" +
path + "");//输出文件相对路径
[align=left] }[/align]
相关文章推荐
- [Excel] CsvHelper---C#关于CSV文件的导入和导出以及转化 (转载)
- C#导出数据到CSV和EXCEL文件,过长的数值被转义的解决方法
- c#实现将Excel文件导出为csv和UTF8格式的txt文件
- C#导出数据到CSV和EXCEL文件时数字文本被转义的解决方法
- C#导出数据到CSV和EXCEL文件,过长的数值被转义的解决方法
- C#导出数据到CSV和EXCEL文件时,过长的数值被转义的解决方法
- C#导出Excel和CSV文件
- C#导出数据到CSV和EXCEL文件,过长的数值被转义的解决方法(3)
- C#导出数据到CSV和EXCEL文件时数字文本被转义的解决方法
- C#导出数据到CSV和EXCEL文件时,过长的数值被转义的解决方法
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- 导出CSV格式文件,用Excel打开乱码的解决办法
- C#导出csv文件,下载
- C#.NET从gridview导出Excel文件
- 关于asp.net C# 导出Excel文件打开Excel文件格式与扩展名指定格式不一致的解决办法
- php 导出成csv或是excel格式的js文件(带序号)
- C# 生成CSV文件 或者导出CSV文件
- C#导出csv文件 防止中文乱码的解决方案
- c# .Net :Excel NPOI导入导出操作教程之数据库表信息数据导出到一个Excel文件并写到磁盘示例分享
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能