using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;


/// <summary>
/// DataTable导出Excel
/// </summary>
/// <param name="dt">datatable数据源</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();
ICellStyle style = book.CreateCellStyle();
style.Alignment = HorizontalAlignment.Center;
style.VerticalAlignment = VerticalAlignment.Center; HSSFRow dataRow = (HSSFRow)sheet.CreateRow();
string strColumns = "治具编号,验收项目,数据,连片类型,Gerber,光板料号,适用机种,制作厂家,厂商确认,进厂日期,应力测试日期";
string[] strArry = strColumns.Split(',');
for (int i = ; i < strArry.Length; i++)
{
dataRow.CreateCell(i).SetCellValue(strArry[i]);
dataRow.GetCell(i).CellStyle = style;
} for (int i = ; i < dt.Rows.Count; i++)
{
dataRow = (HSSFRow)sheet.CreateRow(i + );
for (int j = ; 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"://字符串类型
dataRow.CreateCell(j).SetCellValue(Value);
break;
case "System.DateTime"://日期类型
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 = ;
int.TryParse(Value, out intV);
dataRow.CreateCell(j).SetCellValue(intV);
break;
case "System.Decimal"://浮点型
case "System.Double":
double doubV = ;
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;
//设置宽度
sheet.SetColumnWidth(j, (Value.Length + ) * );
}
} 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();
}

最新文章

  1. 转:IOC框架
  2. Properties类使用
  3. C# 控制台程序(命令行程序)设置字体颜色,窗口宽高,光标行数
  4. [JS] JavaScript由浅入深(2) 进阶
  5. google地图引入网页
  6. centos7 安装 mariadb 的正确命令
  7. 蓝牙(Profile)构成
  8. Java注解教程及自定义注解
  9. JDBC学习总结(二)
  10. DefaultSingletonBeanRegistry extends SimpleAliasRegistry implements SingletonBeanRegistry
  11. ASP.Net 使用SqlBulkCopy批量插入
  12. 使用apache common-io 监控文件变化--转
  13. ASP.NET MVC3学习心得-----表单和HTML辅助方法
  14. Threading Module源码概述(一)
  15. swift webView的高度自适应内容
  16. CentOS 7 学习(一) 配置LAMP和Nginx
  17. eclipse如何忽略、过滤不需要提交到svn的文件和目录
  18. ArcGIS按选定线分割面-案例教程
  19. 开源Dapper的Lambda扩展-Sikiro.Dapper.Extension V2.0
  20. bzoj 1251: 序列终结者 平衡树,fhqtreap

热门文章

  1. Jquery tab 选项卡 无刷新切换
  2. Visual Studio技巧之打造拥有自己标识的代码模板
  3. Unity3d外包公司 长年承接Unity3d项目外包
  4. Eclipse *下载
  5. VC运行库合集2005/2008/2010/2012/2013/2015
  6. [经验交流] 简单安装 centreon 3.2
  7. PHP入门part1
  8. [家里蹲大学数学杂志]第047期18 世纪法国数学界的3L
  9. [家里蹲大学数学杂志]第237期Euler公式的美
  10. maven-bundle-plugin 2.4.0以下版本导出META-INF中的内容到MANIFEST.MF中