asp.net DataTable導(dǎo)出Excel自定義列名的方法
1、添加引用NPOI.dll
2、cs文件頭部添加
using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System.IO;
3、代碼如下:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using WSC.Framework;
using System.Data;
using WSC.Common;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.IO;
public partial class WorkManage_SMT_SMTMaintain : WSC.FramePage
{
SQLHelper sql = new SQLHelper(ConfigurationManager.AppSettings["LocalConnectionString"].ToString());
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void btnReport_Click(object sender, EventArgs e)
{
string strSql = string.Format(@" select smtpicsmdl.model,smtmdl.submodel,pcbapn,PrdType,cycle,cast((12*3600/cycle) as int) as 'rate',onlineMan,offlineMan,reserve3,ptype_desc,minsqg,maxsqg from smtmdl left join smtpicsmdl on smtpicsmdl.submodel=smtmdl.submodel where pcbapn = '{0}' order by smtpicsmdl.model asc,smtpicsmdl.submodel asc,PrdType asc", this.txtMdmitem.Text.Trim());
DataTable dt = sql.Query(strSql);
string strFileName = "SMT機(jī)種信息" + DateTime.Now.ToString("yyyyMMddHHmmss");
ExportExcel(dt, strFileName, "SMT機(jī)種信息");
}
/// <summary>
/// DataTable導(dǎo)出Excel
/// </summary>
/// <param name="dt">datatable數(shù)據(jù)源</param>
/// <param name="strFileName">文件名</param>
/// <param name="strSheetName">工作簿名</param>
public void ExportExcel(DataTable dt, string strFileName, string strSheetName)
{
HSSFWorkbook book = new HSSFWorkbook();
ISheet sheet = book.CreateSheet(strSheetName);
IRow headerrow = sheet.CreateRow(0);
ICellStyle style = book.CreateCellStyle();
style.Alignment = HorizontalAlignment.Center;
style.VerticalAlignment = VerticalAlignment.Center;
HSSFRow dataRow = (HSSFRow)sheet.CreateRow(0);
string strColumns = "主機(jī)種,子機(jī)種,5E料號(hào),產(chǎn)線類(lèi)型,CT(S),rate/12H,線上人力,線外人力,總?cè)肆?面別,刮刀下限,刮刀上限";
string[] strArry = strColumns.Split(',');
for (int i = 0; i < strArry.Length; i++)
{
dataRow.CreateCell(i).SetCellValue(strArry[i]);
dataRow.GetCell(i).CellStyle = style;
}
for (int i = 0; i < dt.Rows.Count; i++)
{
dataRow = (HSSFRow)sheet.CreateRow(i + 1);
for (int j = 0; j < dt.Columns.Count; j++)
{
string ValueType = "";
string Value = "";
if (dt.Rows[i][j].ToString() != null)
{
ValueType = dt.Rows[i][j].GetType().ToString();
Value = dt.Rows[i][j].ToString();
}
switch (ValueType)
{
case "System.String"://字符串類(lèi)型
dataRow.CreateCell(j).SetCellValue(Value);
break;
case "System.DateTime"://日期類(lèi)型
System.DateTime dateV;
System.DateTime.TryParse(Value, out dateV);
dataRow.CreateCell(j).SetCellValue(dateV);
break;
case "System.Boolean"://布爾型
bool boolV = false;
bool.TryParse(Value, out boolV);
dataRow.CreateCell(j).SetCellValue(boolV);
break;
case "System.Int16"://整型
case "System.Int32":
case "System.Int64":
case "System.Byte":
int intV = 0;
int.TryParse(Value, out intV);
dataRow.CreateCell(j).SetCellValue(intV);
break;
case "System.Decimal"://浮點(diǎn)型
case "System.Double":
double doubV = 0;
double.TryParse(Value, out doubV);
dataRow.CreateCell(j).SetCellValue(doubV);
break;
case "System.DBNull"://空值處理
dataRow.CreateCell(j).SetCellValue("");
break;
default:
dataRow.CreateCell(j).SetCellValue("");
break;
}
dataRow.GetCell(j).CellStyle = style;
//設(shè)置寬度
sheet.SetColumnWidth(j, (Value.Length + 10) * 256);
}
}
MemoryStream ms = new MemoryStream();
book.Write(ms);
Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8)));
Response.BinaryWrite(ms.ToArray());
Response.End();
book = null;
ms.Close();
ms.Dispose();
}
}
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
- .NET6導(dǎo)入和導(dǎo)出EXCEL
- Asp.Net Core實(shí)現(xiàn)Excel導(dǎo)出功能的實(shí)現(xiàn)方法
- ASP.NET Core 導(dǎo)入導(dǎo)出Excel xlsx 文件實(shí)例
- ASP.NET使用GridView導(dǎo)出Excel實(shí)現(xiàn)方法
- Asp.Net使用Npoi導(dǎo)入導(dǎo)出Excel的方法
- asp.net導(dǎo)出excel的簡(jiǎn)單方法實(shí)例
- asp.net導(dǎo)出Excel類(lèi)庫(kù)代碼分享
- ASP.NET導(dǎo)出數(shù)據(jù)到Excel的實(shí)現(xiàn)方法
- Asp.net中DataTable導(dǎo)出到Excel的方法介紹
- ASP.NET用DataSet導(dǎo)出到Excel的方法
- asp.net GridView導(dǎo)出到Excel代碼
- ASP.NET MVC把表格導(dǎo)出到Excel
相關(guān)文章
asp.net訪問(wèn)網(wǎng)絡(luò)路徑方法(模擬用戶登錄)
這篇文章主要介紹了asp.net訪問(wèn)網(wǎng)絡(luò)路徑方法,其實(shí)就是模擬用戶登錄,需要的朋友可以參考下2014-08-08
C#.net格式化時(shí)間字符串達(dá)到不同的顯示效果
時(shí)候我們要對(duì)時(shí)間進(jìn)行轉(zhuǎn)換,達(dá)到不同的顯示效果,本文將幫助你實(shí)現(xiàn)這個(gè)多彩的效果,整理很詳細(xì),以備不時(shí)之需,感興趣的朋友可以了解下,或許本文對(duì)你有所幫助2013-01-01
ASP.NET?Core中使用滑動(dòng)窗口限流的問(wèn)題及場(chǎng)景分析
這篇文章主要介紹了ASP.NET?Core中使用滑動(dòng)窗口限流的問(wèn)題,主要介紹服務(wù)限流場(chǎng)景中的應(yīng)用,如何使用滑動(dòng)窗口來(lái)解決這個(gè)問(wèn)題,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-12-12
ASP.NET 通過(guò)攔截器記錄錯(cuò)誤日志的示例代碼
這篇文章主要介紹了ASP.NET 通過(guò)攔截器記錄錯(cuò)誤日志的示例代碼,幫助大家更好的理解和學(xué)習(xí)使用.NET技術(shù),感興趣的朋友可以了解下2021-04-04
保護(hù).net中的dll文件方法(防止破解、反編譯dll)
.net是一種建立在虛擬機(jī)上執(zhí)行的語(yǔ)言,它直接生成 MSIL 的中間語(yǔ)言,再由.net編譯器 JIT 解釋映象為本機(jī)代碼并交付CPU執(zhí)行。中間語(yǔ)言很容易被反編譯,所以研究下如何有效的保護(hù)dll文件2013-02-02
ASP.NET中根據(jù)XML動(dòng)態(tài)創(chuàng)建使用WEB組件
ASP.NET中根據(jù)XML動(dòng)態(tài)創(chuàng)建使用WEB組件...2006-09-09
ASP.NET上傳圖片并生成可帶版權(quán)信息的縮略圖
ASP.NET上傳圖片并生成可帶版權(quán)信息的縮略圖...2006-09-09

