using System;
using System.Data;
using System.IO;
using System.Text;
using System.Web;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
namespace CallCenter.Utility
{
public class NPOIHelper
{
private string _title;
private string _sheetName;
private string _filePath;
///
/// 导出到Excel
///
///
///
public bool ToExcel(DataTable table, string[] columns = null)
{
FileStream fs = new FileStream(this._filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
IWorkbook workBook = new HSSFWorkbook();
if (string.IsNullOrWhiteSpace(this._sheetName))
{
this._sheetName = "sheet1";
}
ISheet sheet = workBook.CreateSheet(this._sheetName);
//处理表格标题
IRow row = sheet.CreateRow(0);
row.CreateCell(0).SetCellValue(this._title);
sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, table.Columns.Count - 1));
row.Height = 500;
ICellStyle cellStyle = workBook.CreateCellStyle();
IFont font = workBook.CreateFont();
font.FontName = "微软雅黑";
font.FontHeightInPoints = 17;
cellStyle.SetFont(font);
cellStyle.VerticalAlignment = VerticalAlignment.Center;
cellStyle.Alignment = HorizontalAlignment.Center;
row.Cells[0].CellStyle = cellStyle;
//处理表格列头
row = sheet.CreateRow(1);
if (columns == null)
{
for (int i = 0; i < table.Columns.Count; i++)
{
row.CreateCell(i).SetCellValue(table.Columns[i].ColumnName);
row.Height = 350;
sheet.AutoSizeColumn(i);
}
}
else
{
for (int i = 0; i < columns.Length; i++)
{
row.CreateCell(i).SetCellValue(columns[i]);
row.Height = 350;
sheet.AutoSizeColumn(i);
}
}
//处理数据内容
for (int i = 0; i < table.Rows.Count; i++)
{
row = sheet.CreateRow(2 + i);
row.Height = 250;
for (int j = 0; j < table.Columns.Count; j++)
{
row.CreateCell(j).SetCellValue(table.Rows[i][j].ToString());
sheet.SetColumnWidth(j, 256 * 15);
}
}
//写入数据流
workBook.Write(fs);
fs.Flush();
fs.Close();
return true;
}
///
/// 导出到Excel
///
///
///
/// 空字符串或null的话默认sheet1
/// 自定义表格列头,默认null
///
public bool ToExcel(DataTable table, string title, string sheetName, string filePath, string[] columns = null)
{
this._title = title;
this._sheetName = sheetName;
this._filePath = filePath;
return ToExcel(table, columns);
}
///
/// 弹出下载框导出excel
///
///
///
///
public string ExportToExcel(string Name, DataTable dt, string[] cols = null)
{
try
{
//if (dt.Rows.Count > 0)
//{
HSSFWorkbook workbook = new HSSFWorkbook();
ISheet sheet = workbook.CreateSheet(Name);
ICellStyle HeadercellStyle = workbook.CreateCellStyle();
HeadercellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
HeadercellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
HeadercellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
HeadercellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
HeadercellStyle.Alignment = HorizontalAlignment.Center;
HeadercellStyle.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.SkyBlue.Index;
HeadercellStyle.FillPattern = FillPattern.SolidForeground;
HeadercellStyle.FillBackgroundColor = NPOI.HSSF.Util.HSSFColor.SkyBlue.Index;
//字体
NPOI.SS.UserModel.IFont headerfont = workbook.CreateFont();
headerfont.Boldweight = (short)FontBoldWeight.Bold;
headerfont.FontHeightInPoints = 12;
HeadercellStyle.SetFont(headerfont);
//用column name 作为列名
int icolIndex = 0;
IRow headerRow = sheet.CreateRow(0);
if (cols == null || (cols != null && cols.Length == 0))
{
foreach (DataColumn dc in dt.Columns)
{
ICell cell = headerRow.CreateCell(icolIndex);
cell.SetCellValue(dc.ColumnName);
cell.CellStyle = HeadercellStyle;
icolIndex++;
}
}
else
{
foreach (string dc in cols)
{
ICell cell = headerRow.CreateCell(icolIndex);
cell.SetCellValue(dc);
cell.CellStyle = HeadercellStyle;
icolIndex++;
}
}
ICellStyle cellStyle = workbook.CreateCellStyle();
//为避免日期格式被Excel自动替换,所以设定 format 为 『@』 表示一率当成text來看
cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("@");
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
NPOI.SS.UserModel.IFont cellfont = workbook.CreateFont();
cellfont.Boldweight = (short)FontBoldWeight.Normal;
cellStyle.SetFont(cellfont);
//建立内容行
int iRowIndex = 0;
foreach (DataRow dr in dt.Rows)
{
int iCellIndex = 0;
IRow irow = sheet.CreateRow(iRowIndex + 1);
for (int i = 0; i < dt.Columns.Count; i++)
{
string strsj = string.Empty;
if (dr[i] != null)
{
strsj = dr[i].ToString();
}
ICell cell = irow.CreateCell(iCellIndex);
cell.SetCellValue(strsj);
cell.CellStyle = cellStyle;
iCellIndex++;
}
iRowIndex++;
}
//自适应列宽度
for (int i = 0; i < icolIndex; i++)
{
sheet.AutoSizeColumn(i);
}
using (MemoryStream ms = new MemoryStream())
{
workbook.Write(ms);
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.UrlEncode(Name + "_导出文件_" + DateTime.Now.Ticks + ".xls", Encoding.UTF8));
curContext.Response.BinaryWrite(ms.GetBuffer());
workbook = null;
ms.Close();
ms.Dispose();
curContext.Response.End();
}
//}
return "";
}
catch
{
return "导出失败!";
}
}
///
/// 导入excel转换为datatable
///
///
///
///
public DataTable ExcelToTable(HttpPostedFile upfile, int headrow)
{
DataTable dt = new DataTable();
IWorkbook workbook = null;
Stream stream = upfile.InputStream;
string suffix = upfile.FileName.Substring(upfile.FileName.LastIndexOf(".") + 1).ToLower();
if (suffix == "xlsx") // 2007版本
{
workbook = new XSSFWorkbook(stream);
}
else if (suffix == "xls") // 2003版本
{
workbook = new HSSFWorkbook(stream);
}
//获取excel的第一个sheet
ISheet sheet = workbook.GetSheetAt(0);
//获取sheet的第一行
IRow headerRow = sheet.GetRow(headrow);
//一行最后一个方格的编号 即总的列数
int cellCount = headerRow.LastCellNum;
//最后一列的标号 即总的行数
int rowCount = sheet.LastRowNum;
//列名
for (int i = 0; i < cellCount; i++)
{
dt.Columns.Add(headerRow.GetCell(i).ToString());
}
for (int i = (sheet.FirstRowNum + headrow + 1); i <= sheet.LastRowNum; i++)
{
DataRow dr = dt.NewRow();
IRow row = sheet.GetRow(i);
for (int j = row.FirstCellNum; j < cellCount; j++)
{
if (row.GetCell(j) != null)
{
dr[j] = row.GetCell(j).ToString();
}
}
dt.Rows.Add(dr);
}
sheet = null;
workbook = null;
return dt;
}
///
/// 导入excel转换为datatable
///
///
///
///
public DataTable ExcelToTable(HttpPostedFileBase upfile, int headrow)
{
DataTable dt = new DataTable();
IWorkbook workbook = null;
Stream stream = upfile.InputStream;
string suffix = upfile.FileName.Substring(upfile.FileName.LastIndexOf(".") + 1).ToLower();
if (suffix == "xlsx") // 2007版本
{
workbook = new XSSFWorkbook(stream);
}
else if (suffix == "xls") // 2003版本
{
workbook = new HSSFWorkbook(stream);
}
//获取excel的第一个sheet
ISheet sheet = workbook.GetSheetAt(0);
//获取sheet的第一行
IRow headerRow = sheet.GetRow(headrow);
//一行最后一个方格的编号 即总的列数
int cellCount = headerRow.LastCellNum;
//最后一列的标号 即总的行数
int rowCount = sheet.LastRowNum;
//列名
for (int i = 0; i < cellCount; i++)
{
dt.Columns.Add(headerRow.GetCell(i).ToString());
}
for (int i = (sheet.FirstRowNum + headrow + 1); i <= sheet.LastRowNum; i++)
{
DataRow dr = dt.NewRow();
IRow row = sheet.GetRow(i);
for (int j = row.FirstCellNum; j < cellCount; j++)
{
if (row.GetCell(j) != null)
{
dr[j] = row.GetCell(j).ToString().Trim(' ').Trim('\t');
}
}
dt.Rows.Add(dr);
}
sheet = null;
workbook = null;
return dt;
}
///
/// 弹出下载框导出excel
///
///
///
///
public string TSExportToExcel(DataTable dt, int tscount)
{
try
{
//if (dt.Rows.Count > 0)
//{
HSSFWorkbook workbook = new HSSFWorkbook();
ISheet sheet = workbook.CreateSheet("Sheet1");
ICellStyle HeadercellStyle = workbook.CreateCellStyle();
HeadercellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
HeadercellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
HeadercellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
HeadercellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
HeadercellStyle.Alignment = HorizontalAlignment.Center;
HeadercellStyle.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.SkyBlue.Index;
HeadercellStyle.FillPattern = FillPattern.SolidForeground;
HeadercellStyle.FillBackgroundColor = NPOI.HSSF.Util.HSSFColor.SkyBlue.Index;
//字体
NPOI.SS.UserModel.IFont headerfont = workbook.CreateFont();
headerfont.Boldweight = (short)FontBoldWeight.Bold;
headerfont.FontHeightInPoints = 12;
HeadercellStyle.SetFont(headerfont);
//用column name 作为列名
int icolIndex = 0;
IRow headerRow = sheet.CreateRow(0);
foreach (DataColumn dc in dt.Columns)
{
ICell cell = headerRow.CreateCell(icolIndex);
cell.SetCellValue(dc.ColumnName);
cell.CellStyle = HeadercellStyle;
icolIndex++;
}
ICellStyle cellStyle = workbook.CreateCellStyle();
//为避免日期格式被Excel自动替换,所以设定 format 为 『@』 表示一率当成text來看
cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("@");
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
NPOI.SS.UserModel.IFont cellfont = workbook.CreateFont();
cellfont.Boldweight = (short)FontBoldWeight.Normal;
cellStyle.SetFont(cellfont);
//建立内容行
int iRowIndex = 0;
foreach (DataRow dr in dt.Rows)
{
int iCellIndex = 0;
IRow irow = sheet.CreateRow(iRowIndex + 1);
for (int i = 0; i < dt.Columns.Count; i++)
{
string strsj = string.Empty;
if (dr[i] != null)
{
strsj = dr[i].ToString();
}
ICell cell = irow.CreateCell(iCellIndex);
cell.SetCellValue(strsj);
cell.CellStyle = cellStyle;
iCellIndex++;
}
iRowIndex++;
}
sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 1));
sheet.AddMergedRegion(new CellRangeAddress(1, tscount, 0, 0));
for (int i = iRowIndex; i > tscount; i--)
{
sheet.AddMergedRegion(new CellRangeAddress(i, i, 0, 1));
}
//自适应列宽度
for (int i = 0; i < icolIndex; i++)
{
sheet.AutoSizeColumn(i);
}
using (MemoryStream ms = new MemoryStream())
{
workbook.Write(ms);
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.UrlEncode("投诉统计_导出文件_" + DateTime.Now.Ticks + ".xls", Encoding.UTF8));
curContext.Response.BinaryWrite(ms.GetBuffer());
workbook = null;
ms.Close();
ms.Dispose();
curContext.Response.End();
}
//}
return "";
}
catch
{
return "导出失败!";
}
}
///
/// 生成excel到路径
///
///
///
///
public string CreateExcelFile(string Name, DataTable dt, string Path,string[] cols = null)
{
try
{
if (dt.Rows.Count > 0)
{
HSSFWorkbook workbook = new HSSFWorkbook();
ISheet sheet = workbook.CreateSheet(Name);
ICellStyle HeadercellStyle = workbook.CreateCellStyle();
HeadercellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
HeadercellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
HeadercellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
HeadercellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
HeadercellStyle.Alignment = HorizontalAlignment.Center;
HeadercellStyle.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.SkyBlue.Index;
HeadercellStyle.FillPattern = FillPattern.SolidForeground;
HeadercellStyle.FillBackgroundColor = NPOI.HSSF.Util.HSSFColor.SkyBlue.Index;
//字体
NPOI.SS.UserModel.IFont headerfont = workbook.CreateFont();
headerfont.Boldweight = (short)FontBoldWeight.Bold;
headerfont.FontHeightInPoints = 12;
HeadercellStyle.SetFont(headerfont);
//用column name 作为列名
int icolIndex = 0;
IRow headerRow = sheet.CreateRow(0);
if (cols == null || (cols != null && cols.Length == 0))
{
foreach (DataColumn dc in dt.Columns)
{
ICell cell = headerRow.CreateCell(icolIndex);
cell.SetCellValue(dc.ColumnName);
cell.CellStyle = HeadercellStyle;
icolIndex++;
}
}
else
{
foreach (string dc in cols)
{
ICell cell = headerRow.CreateCell(icolIndex);
cell.SetCellValue(dc);
cell.CellStyle = HeadercellStyle;
icolIndex++;
}
}
ICellStyle cellStyle = workbook.CreateCellStyle();
//为避免日期格式被Excel自动替换,所以设定 format 为 『@』 表示一率当成text來看
cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("@");
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
NPOI.SS.UserModel.IFont cellfont = workbook.CreateFont();
cellfont.Boldweight = (short)FontBoldWeight.Normal;
cellStyle.SetFont(cellfont);
//建立内容行
int iRowIndex = 0;
foreach (DataRow dr in dt.Rows)
{
int iCellIndex = 0;
IRow irow = sheet.CreateRow(iRowIndex + 1);
for (int i = 0; i < dt.Columns.Count; i++)
{
string strsj = string.Empty;
if (dr[i] != null)
{
strsj = dr[i].ToString();
}
ICell cell = irow.CreateCell(iCellIndex);
cell.SetCellValue(strsj);
cell.CellStyle = cellStyle;
iCellIndex++;
}
iRowIndex++;
}
//自适应列宽度
for (int i = 0; i < icolIndex; i++)
{
sheet.AutoSizeColumn(i);
}
Name = HttpUtility.UrlEncode(Name + "_导出文件_" + DateTime.Now.Ticks + ".xls");
Path = HttpContext.Current.Server.MapPath("..") + Path;
if (!Directory.Exists(Path)) Directory.CreateDirectory(Path);
FileStream fileHSSF = new FileStream(Path+ Name, FileMode.Create);
workbook.Write(fileHSSF);
fileHSSF.Close();
fileHSSF.Dispose();
workbook = null;
}
return "";
}
catch
{
return "生成失败!";
}
}
///
/// 弹出下载框导出excel
///
///
///
///
public string ExportToExcel64(string name, string base64url)
{
try
{
int delLength = base64url.IndexOf(',') + 1;
string str = base64url.Substring(delLength, base64url.Length - delLength);
byte[] bData = Convert.FromBase64String(str);
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.UrlEncode(name + "_导出文件_" + DateTime.Now.Ticks + ".xls", Encoding.UTF8));
curContext.Response.BinaryWrite(bData);
curContext.Response.End();
return "";
}
catch
{
return "导出失败!";
}
}
///
/// 简报导出
///
///
///
public string SimpleExportToExcel(DataSet ds)
{
try
{
HSSFWorkbook workbook = new HSSFWorkbook();
ISheet sheet = workbook.CreateSheet("Sheet1");
ICellStyle cellStyle = workbook.CreateCellStyle();
//为避免日期格式被Excel自动替换,所以设定 format 为 『@』 表示一率当成text來看
//cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("@");
//cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
//cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
//cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
//cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
NPOI.SS.UserModel.IFont cellfont = workbook.CreateFont();
cellfont.Boldweight = (short)FontBoldWeight.Normal;
cellStyle.SetFont(cellfont);
IRow irow1 = sheet.CreateRow(1);
ICell cell1 = irow1.CreateCell(0);
cell1.SetCellValue("时间:"+ ds.Tables[5].Rows[0]["sdate"].ToString()+ " 至 "+ ds.Tables[5].Rows[0]["edate"].ToString());
cell1.CellStyle = cellStyle;
sheet.AddMergedRegion(new CellRangeAddress(1, 1, 0, 7));
#region 话务受理情况
DataTable dt1 = ds.Tables[0];
IRow irow2 = sheet.CreateRow(2);
ICell cell2 = irow2.CreateCell(0);
cell2.SetCellValue("话务受理情况");
cell2.CellStyle = cellStyle;
sheet.AddMergedRegion(new CellRangeAddress(2, 2, 0, 7));
IRow irow3 = sheet.CreateRow(3);
ICell cell31 = irow3.CreateCell(0);
cell31.SetCellValue("来电");
cell31.CellStyle = cellStyle;
ICell cell32 = irow3.CreateCell(1);
cell32.SetCellValue(Int32.Parse(dt1.Rows[0]["ldcount"].ToString()));
cell32.CellStyle = cellStyle;
ICell cell33 = irow3.CreateCell(2);
cell33.SetCellValue("接听");
cell33.CellStyle = cellStyle;
ICell cell34 = irow3.CreateCell(3);
cell34.SetCellValue(Int32.Parse(dt1.Rows[0]["jtcount"].ToString()));
cell34.CellStyle = cellStyle;
ICell cell35 = irow3.CreateCell(4);
cell35.SetCellValue("有效接听");
cell35.CellStyle = cellStyle;
ICell cell36 = irow3.CreateCell(5);
cell36.SetCellValue(Int32.Parse(dt1.Rows[0]["yxcount"].ToString()));
cell36.CellStyle = cellStyle;
#endregion
#region 工单受理情况
DataTable dt2 = ds.Tables[1];
IRow irow4 = sheet.CreateRow(4);
ICell cell4 = irow4.CreateCell(0);
cell4.SetCellValue("工单受理情况");
cell4.CellStyle = cellStyle;
sheet.AddMergedRegion(new CellRangeAddress(4, 4, 0, 7));
IRow irow5 = sheet.CreateRow(5);
ICell cell51 = irow5.CreateCell(0);
cell51.SetCellValue("受理");
cell51.CellStyle = cellStyle;
ICell cell52 = irow5.CreateCell(1);
cell52.SetCellValue(Int32.Parse(dt2.Rows[0]["slcount"].ToString()));
cell52.CellStyle = cellStyle;
ICell cell53 = irow5.CreateCell(2);
cell53.SetCellValue("待提交");
cell53.CellStyle = cellStyle;
ICell cell54 = irow5.CreateCell(3);
cell54.SetCellValue(Int32.Parse(dt2.Rows[0]["dtjcount"].ToString()));
cell54.CellStyle = cellStyle;
ICell cell55 = irow5.CreateCell(4);
cell55.SetCellValue("待交办");
cell55.CellStyle = cellStyle;
ICell cell56 = irow5.CreateCell(5);
cell56.SetCellValue(Int32.Parse(dt2.Rows[0]["djbcount"].ToString()));
cell56.CellStyle = cellStyle;
ICell cell57 = irow5.CreateCell(6);
cell57.SetCellValue("待查收");
cell57.CellStyle = cellStyle;
ICell cell58 = irow5.CreateCell(7);
cell58.SetCellValue(Int32.Parse(dt2.Rows[0]["dcscount"].ToString()));
cell58.CellStyle = cellStyle;
IRow irow6 = sheet.CreateRow(6);
ICell cell61 = irow6.CreateCell(0);
cell61.SetCellValue("待审核退回");
cell61.CellStyle = cellStyle;
ICell cell62 = irow6.CreateCell(1);
cell62.SetCellValue(Int32.Parse(dt2.Rows[0]["dshthcount"].ToString()));
cell62.CellStyle = cellStyle;
ICell cell63 = irow6.CreateCell(2);
cell63.SetCellValue("待办理");
cell63.CellStyle = cellStyle;
ICell cell64 = irow6.CreateCell(3);
cell64.SetCellValue(Int32.Parse(dt2.Rows[0]["dblcount"].ToString()));
cell64.CellStyle = cellStyle;
ICell cell65 = irow6.CreateCell(4);
cell65.SetCellValue("待延时审核");
cell65.CellStyle = cellStyle;
ICell cell66 = irow6.CreateCell(5);
cell66.SetCellValue(Int32.Parse(dt2.Rows[0]["dshyscount"].ToString()));
cell66.CellStyle = cellStyle;
ICell cell67 = irow6.CreateCell(6);
cell67.SetCellValue("待回访");
cell67.CellStyle = cellStyle;
ICell cell68 = irow6.CreateCell(7);
cell68.SetCellValue(Int32.Parse(dt2.Rows[0]["dhfcount"].ToString()));
cell68.CellStyle = cellStyle;
IRow irow7 = sheet.CreateRow(7);
ICell cell71 = irow7.CreateCell(0);
cell71.SetCellValue("待结案");
cell71.CellStyle = cellStyle;
ICell cell72 = irow7.CreateCell(1);
cell72.SetCellValue(Int32.Parse(dt2.Rows[0]["dwjcount"].ToString()));
cell72.CellStyle = cellStyle;
ICell cell73 = irow7.CreateCell(2);
cell73.SetCellValue("待重办");
cell73.CellStyle = cellStyle;
ICell cell74 = irow7.CreateCell(3);
cell74.SetCellValue(Int32.Parse(dt2.Rows[0]["dcbcount"].ToString()));
cell74.CellStyle = cellStyle;
ICell cell75 = irow7.CreateCell(4);
cell75.SetCellValue("已结案");
cell75.CellStyle = cellStyle;
ICell cell76 = irow7.CreateCell(5);
cell76.SetCellValue(Int32.Parse(dt2.Rows[0]["ywjcount"].ToString()));
cell76.CellStyle = cellStyle;
ICell cell77 = irow7.CreateCell(6);
cell77.SetCellValue("在线办理");
cell77.CellStyle = cellStyle;
ICell cell78 = irow7.CreateCell(7);
cell78.SetCellValue(Int32.Parse(dt2.Rows[0]["zxbjcount"].ToString()));
cell78.CellStyle = cellStyle;
IRow irow8 = sheet.CreateRow(8);
ICell cell81 = irow8.CreateCell(0);
cell81.SetCellValue("中心转派");
cell81.CellStyle = cellStyle;
ICell cell82 = irow8.CreateCell(1);
cell82.SetCellValue(Int32.Parse(dt2.Rows[0]["zxzpcount"].ToString()));
cell82.CellStyle = cellStyle;
#endregion
#region 政府热线受理情况
DataTable dt3 = ds.Tables[2];
IRow irow9 = sheet.CreateRow(9);
ICell cell9 = irow9.CreateCell(0);
cell9.SetCellValue("政府热线受理情况");
cell9.CellStyle = cellStyle;
sheet.AddMergedRegion(new CellRangeAddress(9, 9, 0, 7));
IRow irow10 = sheet.CreateRow(10);
IRow irow11 = sheet.CreateRow(11);
int n = 0;
foreach (DataRow dr3 in dt3.Rows)
{
if (n < 4)
{
ICell cell101 = irow10.CreateCell(2 * (n + 1) - 2);
cell101.SetCellValue(dr3["source"].ToString());
cell101.CellStyle = cellStyle;
ICell cell102 = irow10.CreateCell(2 * (n + 1) - 1);
cell102.SetCellValue(Int32.Parse(dr3["count"].ToString()));
cell102.CellStyle = cellStyle;
}
else
{
ICell cell111 = irow11.CreateCell(2 * (n -3) - 2);
cell111.SetCellValue(dr3["source"].ToString());
cell111.CellStyle = cellStyle;
ICell cell112 = irow11.CreateCell(2 * (n - 3) - 1);
cell112.SetCellValue(Int32.Parse(dr3["count"].ToString()));
cell112.CellStyle = cellStyle;
}
n = n + 1;
}
#endregion
#region 工单受理类型情况
DataTable dt4 = ds.Tables[3];
IRow irow12 = sheet.CreateRow(12);
ICell cell12 = irow12.CreateCell(0);
cell12.SetCellValue("工单受理类型情况");
cell12.CellStyle = cellStyle;
sheet.AddMergedRegion(new CellRangeAddress(12, 12, 0, 7));
IRow irow13 = sheet.CreateRow(13);
IRow irow14 = sheet.CreateRow(14);
int m = 0;
foreach (DataRow dr4 in dt4.Rows)
{
if (m < 4)
{
ICell cell131 = irow13.CreateCell(2 * (m + 1) - 2);
cell131.SetCellValue(dr4["type"].ToString());
cell131.CellStyle = cellStyle;
ICell cell132 = irow13.CreateCell(2 * (m + 1) - 1);
cell132.SetCellValue(Int32.Parse(dr4["count"].ToString()));
cell132.CellStyle = cellStyle;
}
else
{
ICell cell141 = irow14.CreateCell(2 * (m - 3) - 2);
cell141.SetCellValue(dr4["type"].ToString());
cell141.CellStyle = cellStyle;
ICell cell152 = irow14.CreateCell(2 * (m - 3) - 1);
cell152.SetCellValue(Int32.Parse(dr4["count"].ToString()));
cell152.CellStyle = cellStyle;
}
m = m + 1;
}
#endregion
#region 工单事发区域情况
DataTable dt5 = ds.Tables[4];
IRow irow15 = sheet.CreateRow(15);
ICell cell15 = irow15.CreateCell(0);
cell15.SetCellValue("工单事发区域情况");
cell15.CellStyle = cellStyle;
sheet.AddMergedRegion(new CellRangeAddress(15, 15, 0, 7));
int rowcount = (dt5.Rows.Count / 4) + 1;
for (int i = 0; i < rowcount; i++)
{
IRow irow = sheet.CreateRow(16 + i);
for (int j = 0; j < 4; j++)
{
int num = i * 4 + j;
if (num != dt5.Rows.Count)
{
var dr = dt5.Rows[num];
ICell cellname = irow.CreateCell(2 * (j + 1) - 2);
cellname.SetCellValue(dr["areaname"].ToString());
cellname.CellStyle = cellStyle;
ICell cellcount = irow.CreateCell(2 * (j + 1) - 1);
cellcount.SetCellValue(Int32.Parse(dr["count"].ToString()));
cellcount.CellStyle = cellStyle;
}
else
{
break;
}
}
}
#endregion
//自适应列宽度
for (int i = 0; i < 8; i++)
{
sheet.AutoSizeColumn(i);
}
using (MemoryStream ms = new MemoryStream())
{
workbook.Write(ms);
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.UrlEncode("业务简报_导出文件_" + DateTime.Now.Ticks + ".xls", Encoding.UTF8));
curContext.Response.BinaryWrite(ms.GetBuffer());
workbook = null;
ms.Close();
ms.Dispose();
curContext.Response.End();
}
return "";
}
catch
{
return "导出失败!";
}
}
}
}