using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using NPOI.HSSF.UserModel;
using NPOI.OpenXmlFormats.Wordprocessing;
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);
}
///
/// 投诉产品日期分布表
///
///
///
public string SatisfiedToExcel(string Name, IOrderedEnumerable deptSatisfied, string[] cols = null)
{
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 (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;
string strsj = "";
foreach (var dr in deptSatisfied )
{
IRow irow = sheet.CreateRow(iRowIndex + 1);
for (int i = 0; i <5 ; i++)
{
switch (i )
{
case 0:
strsj = dr.deptname;
ICell cell = irow.CreateCell(i);
cell.SetCellValue(strsj);
cell.CellStyle = cellStyle;
break;
case 1:
strsj = dr.count.ToString ();
ICell cell1 = irow.CreateCell(i);
cell1.SetCellValue(strsj);
cell1.CellStyle = cellStyle;
break;
case 2:
strsj = dr.satisfiedcount.ToString();
ICell cell2 = irow.CreateCell(i);
cell2.SetCellValue(strsj);
cell2.CellStyle = cellStyle;
break;
case 3:
strsj = dr.notsatisfiedcount.ToString();
ICell cell3 = irow.CreateCell(i);
cell3.SetCellValue(strsj);
cell3.CellStyle = cellStyle;
break;
case 4:
strsj = dr.satisfiedrate;
ICell cell4 = irow.CreateCell(i);
cell4.SetCellValue(strsj);
cell4.CellStyle = cellStyle;
break;
}
}
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("Access-Control-Expose-Headers", "Content-Disposition");
curContext.Response.AppendHeader("Content-Disposition",
"attachment;filename=" + HttpUtility.UrlEncode(Name + ".xls", Encoding.UTF8));
curContext.Response.BinaryWrite(ms.GetBuffer());
workbook = null;
ms.Close();
ms.Dispose();
curContext.Response.End();
}
//}
return "";
}
catch
{
return "导出失败!";
}
}
///
/// 弹出下载框导出excel
///
///
///
///
public string ExportToExcel(string Name, DataTable dt, string[] cols = null, int issort = 0)
{
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 (issort == 1)
{
ICell cell = headerRow.CreateCell(icolIndex);
cell.SetCellValue("序号");
cell.CellStyle = HeadercellStyle;
icolIndex++;
}
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);
if (issort == 1)
{
ICell cell = irow.CreateCell(iCellIndex);
cell.SetCellValue(iRowIndex + 1);
cell.CellStyle = cellStyle;
iCellIndex++;
}
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("Access-Control-Expose-Headers", "Content-Disposition");
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;
}
private string GetCellValue(DataRow dr,int index,int i )
{
string str = "";
switch (i)
{
case 0:
str = index.ToString();
break;
case 1:
str = dr["deptname"].ToString();
break;
case 2:
str = dr["Undertakers"].ToString();
break;
case 3:
str = dr["Undertakersrate"].ToString();
break;
case 4:
str = dr["Undertakersscore"].ToString();
break;
case 5:
str = dr["overdue"].ToString();
break;
case 6:
str = dr["overduerate"].ToString();
break;
case 7:
str = dr["overduescore"].ToString();
break;
case 8:
str = dr["unsuccessful"].ToString();
break;
case 9:
str = dr["unsuccessfulrate"].ToString();
break;
case 10:
str = dr["unsuccessfulscore"].ToString();
break;
case 11:
str = dr["Chargeback"].ToString();
break;
case 12:
str = dr["Chargebackrate"].ToString();
break;
case 13:
str = dr["Chargebackscore"].ToString();
break;
case 14:
str = dr["Comment"].ToString();
break;
case 15:
str = dr["Oncedissatisfied"].ToString();
break;
case 16:
str = dr["dissatisfied"].ToString();
break;
case 17:
str = dr["satisfiedrate"].ToString();
break;
case 18:
str = dr["satisfiedscore"].ToString();
break;
case 19:
str = dr["total"].ToString();
break;
case 20:
str = index.ToString();
break;
}
return str;
}
public string ExcelMergerHotline(List mergerHotSources
)
{
return "";
}
///
/// 督办数据报表导出
///
///
///
public string DBExportToExcel(DataTable dt,string Name,string month,string starttime ,string endtime )
{
try
{
HSSFWorkbook workbook = new HSSFWorkbook();
ISheet sheet = workbook.CreateSheet(Name);
ICellStyle cellStyle = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfont = workbook.CreateFont();
cellfont.Boldweight = (short)FontBoldWeight.Normal;
cellStyle.SetFont(cellfont);
ICellStyle cellStylebt = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt = workbook.CreateFont();
cellfontbt.Boldweight = (short)FontBoldWeight.Bold;
cellStylebt.SetFont(cellfontbt);
cellStylebt.VerticalAlignment = VerticalAlignment.Center;
cellStylebt.Alignment = HorizontalAlignment.Center;
IRow irow1 = sheet.CreateRow(0);
ICell cell1 = irow1.CreateCell(0);
cell1.SetCellValue("12345联动服务工作"+ month + "月份办理情况通报表");
cell1.CellStyle = cellStylebt;
sheet.AddMergedRegion(new CellRangeAddress(0, 1, 0, 19));
IRow irow2 = sheet.CreateRow(2);
ICell cell2 = irow2.CreateCell(0);
cell2.SetCellValue("统计周期:"+ starttime+"至"+ endtime+" 统计时间:"+DateTime .Now.ToString ("yyyy年MM月dd日"));
cell2.CellStyle = cellStylebt;
sheet.AddMergedRegion(new CellRangeAddress(2, 2, 0, 19));
IRow irow3 = sheet.CreateRow(3);
ICell cell3 = irow3.CreateCell(0);
cell3.SetCellValue("一、县(市、区)联动单位");
cell3.CellStyle = cellStylebt;
sheet.AddMergedRegion(new CellRangeAddress(3, 3, 0, 19));
string[] cols = {"序号","联动单位","承办件",
"承办率","得分(5分)","超期件","按时反馈率","得分(20分)",
"未果件","办结率","得分(10分)","退单件","有效回复率",
"得分(15分)","群众评议总数","一次不满意件","不满意件","满意率","得分(50分)","总分","排名"};
IRow irow4 = sheet.CreateRow(4);
int icolIndex = 0;
foreach (string dc in cols)
{
ICell cell = irow4.CreateCell(icolIndex);
cell.SetCellValue(dc);
cell.CellStyle = cellStylebt;
icolIndex++;
}
int iRowIndex = 5;
DataRow[] rows = dt.Select("category=1");
int index = 0;
foreach (DataRow dr in rows)
{
index++;
int iCellIndex = 0;
IRow irow = sheet.CreateRow(iRowIndex );
for (int i = 0; i < 21; i++)
{
ICell cell = irow.CreateCell(iCellIndex);
cell.SetCellValue(GetCellValue(dr, index,i ));
cell.CellStyle = cellStyle;
iCellIndex++;
}
iRowIndex++;
}
IRow irow5 = sheet.CreateRow(iRowIndex);
ICell cell5 = irow5.CreateCell(0);
cell5.SetCellValue("二、市直机关联动单位一组");
cell5.CellStyle = cellStylebt;
sheet.AddMergedRegion(new CellRangeAddress(iRowIndex, iRowIndex, 0, 19));
iRowIndex++;
IRow irow6 = sheet.CreateRow(iRowIndex);
icolIndex = 0;
foreach (string dc in cols)
{
ICell cell = irow6.CreateCell(icolIndex);
cell.SetCellValue(dc);
cell.CellStyle = cellStylebt;
icolIndex++;
}
iRowIndex++;
rows = dt.Select("category=2");
index = 0;
foreach (DataRow dr in rows)
{
index++;
int iCellIndex = 0;
IRow irow = sheet.CreateRow(iRowIndex);
for (int i = 0; i < 21; i++)
{
ICell cell = irow.CreateCell(iCellIndex);
cell.SetCellValue(GetCellValue(dr, index,i ));
cell.CellStyle = cellStyle;
iCellIndex++;
}
iRowIndex++;
}
IRow irow7 = sheet.CreateRow(iRowIndex);
ICell cell7 = irow7.CreateCell(0);
cell7.SetCellValue("三、市直机关联动单位二组");
cell7.CellStyle = cellStylebt;
sheet.AddMergedRegion(new CellRangeAddress(iRowIndex, iRowIndex, 0, 19));
iRowIndex++;
IRow irow8 = sheet.CreateRow(iRowIndex);
icolIndex = 0;
foreach (string dc in cols)
{
ICell cell = irow8.CreateCell(icolIndex);
cell.SetCellValue(dc);
cell.CellStyle = cellStylebt;
icolIndex++;
}
iRowIndex++;
rows = dt.Select("category=3");
index = 0;
foreach (DataRow dr in rows)
{
index++;
int iCellIndex = 0;
IRow irow = sheet.CreateRow(iRowIndex);
for (int i = 0; i < 21; i++)
{
ICell cell = irow.CreateCell(iCellIndex);
cell.SetCellValue(GetCellValue(dr, index,i ));
cell.CellStyle = cellStyle;
iCellIndex++;
}
iRowIndex++;
}
IRow irow9 = sheet.CreateRow(iRowIndex);
ICell cell9 = irow9.CreateCell(0);
cell9.SetCellValue("四、公益型企业联动单位");
cell9.CellStyle = cellStylebt;
sheet.AddMergedRegion(new CellRangeAddress(iRowIndex, iRowIndex, 0, 19));
iRowIndex++;
IRow irow10 = sheet.CreateRow(iRowIndex);
icolIndex = 0;
foreach (string dc in cols)
{
ICell cell = irow10.CreateCell(icolIndex);
cell.SetCellValue(dc);
cell.CellStyle = cellStylebt;
icolIndex++;
}
iRowIndex++;
rows = dt.Select("category=4");
index = 0;
foreach (DataRow dr in rows)
{
index++;
int iCellIndex = 0;
IRow irow = sheet.CreateRow(iRowIndex);
for (int i = 0; i < 21; i++)
{
ICell cell = irow.CreateCell(iCellIndex);
cell.SetCellValue(GetCellValue(dr, index,i ));
cell.CellStyle = cellStyle;
iCellIndex++;
}
iRowIndex++;
}
//自适应列宽度
for (int i = 0; i < 20; i++)
{
sheet.AutoSizeColumn(i);
// sheet.SetColumnWidth(i, 20 * 256);
}
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("Access-Control-Expose-Headers", "Content-Disposition");
curContext.Response.AppendHeader("Content-Disposition",
"attachment;filename=" + HttpUtility.UrlEncode(Name + ".xls", Encoding.UTF8));
curContext.Response.BinaryWrite(ms.GetBuffer());
workbook = null;
ms.Close();
ms.Dispose();
curContext.Response.End();
}
return "";
}
catch
{
return "导出失败!";
}
}
///
/// 督办数据报表导出
///
///
///
public string DBEJExportToExcel(DataTable dt, string Name, string month, string starttime, string endtime)
{
try
{
HSSFWorkbook workbook = new HSSFWorkbook();
ISheet sheet = workbook.CreateSheet(Name);
ICellStyle cellStyle = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfont = workbook.CreateFont();
cellfont.Boldweight = (short)FontBoldWeight.Normal;
cellStyle.SetFont(cellfont);
ICellStyle cellStylebt = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt = workbook.CreateFont();
cellfontbt.Boldweight = (short)FontBoldWeight.Bold;
cellStylebt.SetFont(cellfontbt);
cellStylebt.VerticalAlignment = VerticalAlignment.Center;
cellStylebt.Alignment = HorizontalAlignment.Center;
IRow irow1 = sheet.CreateRow(0);
ICell cell1 = irow1.CreateCell(0);
cell1.SetCellValue("12345联动服务工作" + month + "月份办理情况通报表");
cell1.CellStyle = cellStylebt;
sheet.AddMergedRegion(new CellRangeAddress(0, 1, 0, 19));
IRow irow2 = sheet.CreateRow(2);
ICell cell2 = irow2.CreateCell(0);
cell2.SetCellValue("统计周期:" + starttime + "至" + endtime + " 统计时间:" + DateTime.Now.ToString("yyyy年MM月dd日"));
cell2.CellStyle = cellStylebt;
sheet.AddMergedRegion(new CellRangeAddress(2, 2, 0, 19));
IRow irow3 = sheet.CreateRow(3);
ICell cell3 = irow3.CreateCell(0);
cell3.SetCellValue("一、县(市、区)联动单位");
cell3.CellStyle = cellStylebt;
sheet.AddMergedRegion(new CellRangeAddress(3, 3, 0, 19));
string[] cols = {"序号","联动单位","承办件",
"承办率","得分(5分)","超期件","按时反馈率","得分(20分)",
"未果件","办结率","得分(10分)","退单件","有效回复率",
"得分(15分)","群众评议总数","一次不满意件","不满意件","满意率","得分(50分)","总分","排名"};
IRow irow4 = sheet.CreateRow(4);
int icolIndex = 0;
foreach (string dc in cols)
{
ICell cell = irow4.CreateCell(icolIndex);
cell.SetCellValue(dc);
cell.CellStyle = cellStylebt;
icolIndex++;
}
int iRowIndex = 5;
// DataRow[] rows = dt.Select("category=1");
int index = 0;
foreach (DataRow dr in dt.Rows )
{
index++;
int iCellIndex = 0;
IRow irow = sheet.CreateRow(iRowIndex);
for (int i = 0; i < 21; i++)
{
ICell cell = irow.CreateCell(iCellIndex);
cell.SetCellValue(GetCellValue(dr, index, i));
cell.CellStyle = cellStyle;
iCellIndex++;
}
iRowIndex++;
}
//自适应列宽度
for (int i = 0; i < 20; i++)
{
sheet.AutoSizeColumn(i);
// sheet.SetColumnWidth(i, 20 * 256);
}
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("Access-Control-Expose-Headers", "Content-Disposition");
curContext.Response.AppendHeader("Content-Disposition",
"attachment;filename=" + HttpUtility.UrlEncode(Name + ".xls", Encoding.UTF8));
curContext.Response.BinaryWrite(ms.GetBuffer());
workbook = null;
ms.Close();
ms.Dispose();
curContext.Response.End();
}
return "";
}
catch
{
return "导出失败!";
}
}
//
///
/// 督办数据报表导出
///
///
///
public string ExportMergerToExcel(List MergerHotSource)
{
try
{
int lenth = 0;
if (MergerHotSource!=null&& MergerHotSource.Count>0)
{
if (MergerHotSource[0]!=null && MergerHotSource[0].MergerHot !=null
&& MergerHotSource[0].MergerHot.Count >0)
{
lenth = MergerHotSource[0].MergerHot.Count * 5+4;
}
else
{
return "";
}
}
else
{
return "";
}
HSSFWorkbook workbook = new HSSFWorkbook();
ISheet sheet = workbook.CreateSheet("归并热线每日数据统计");
ICellStyle cellStyle = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfont = workbook.CreateFont();
cellfont.Boldweight = (short)FontBoldWeight.Normal;
cellStyle.SetFont(cellfont);
ICellStyle cellStylebt = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt = workbook.CreateFont();
cellfontbt.Boldweight = (short)FontBoldWeight.Bold;
cellStylebt.SetFont(cellfontbt);
cellStylebt.VerticalAlignment = VerticalAlignment.Center;
cellStylebt.Alignment = HorizontalAlignment.Center;
cellStylebt.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
IRow irow1 = sheet.CreateRow(0);
ICell cell1 = irow1.CreateCell(0);
cell1.SetCellValue("归并热线每日数据统计");
cell1.CellStyle=cellStylebt;
ICellStyle cellStylebt1 = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt1 = workbook.CreateFont();
cellfontbt1.Boldweight = (short)FontBoldWeight.Bold;
cellfontbt1.FontHeightInPoints = 22;
cellStylebt1.SetFont(cellfontbt1);
cellStylebt1.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt1.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt1.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt1.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt1.VerticalAlignment = VerticalAlignment.Center;
cellStylebt1.Alignment = HorizontalAlignment.Center;
cell1.CellStyle = cellStylebt1;
sheet.AddMergedRegion(new CellRangeAddress(0, 2, 0, lenth));
IRow irow2 = sheet.CreateRow(3);
int icolIndex = 0;
ICellStyle cellStylebt2 = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt2 = workbook.CreateFont();
cellfontbt2.Boldweight = (short)FontBoldWeight.Bold;
cellStylebt2.WrapText = true;//设置换行这个要先设置
cellfontbt2.FontHeightInPoints = 14;
cellStylebt2.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt2.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt2.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt2.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt2.SetFont(cellfontbt2);
cellStylebt2.VerticalAlignment = VerticalAlignment.Center;
cellStylebt2.Alignment = HorizontalAlignment.Center;
HSSFPalette palette = workbook.GetCustomPalette(); //调色板实例
palette.SetColorAtIndex(8, 237,237, 237);
NPOI.HSSF.Util.HSSFColor hssFColor = palette.FindColor(237, 237, 237);
cellStylebt2.FillForegroundColor = hssFColor.Indexed ;
cellStylebt2.FillPattern = FillPattern.SolidForeground;
cellStylebt2.FillBackgroundColor = hssFColor.Indexed; ;
ICellStyle cellStylebt3 = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt3 = workbook.CreateFont();
cellfontbt3.Boldweight = (short)FontBoldWeight.Bold;
cellStylebt3.WrapText = true;//设置换行这个要先设置
cellfontbt3.FontHeightInPoints = 14;
cellStylebt3.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt3.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt3.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt3.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt3.SetFont(cellfontbt3);
cellStylebt3.VerticalAlignment = VerticalAlignment.Center;
cellStylebt3.Alignment = HorizontalAlignment.Center;
HSSFPalette palette1 = workbook.GetCustomPalette(); //调色板实例
palette1.SetColorAtIndex(9, 221,235,247);
NPOI.HSSF.Util.HSSFColor hssFColor1 = palette1.FindColor(221, 235, 247);
cellStylebt3.FillForegroundColor = hssFColor1.Indexed ;
cellStylebt3.FillPattern = FillPattern.SolidForeground;
cellStylebt3.FillBackgroundColor = hssFColor1.Indexed;
ICellStyle cellStylebt4 = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt4 = workbook.CreateFont();
cellStylebt4.WrapText = true;//设置换行这个要先设置
cellfontbt4.Boldweight = (short)FontBoldWeight.Bold;
cellfontbt4.FontHeightInPoints = 11;
cellStylebt4.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt4.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt4.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt4.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt4.SetFont(cellfontbt4);
cellStylebt4.VerticalAlignment = VerticalAlignment.Center;
cellStylebt4.Alignment = HorizontalAlignment.Center;
ICellStyle cellStylebt5 = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt5 = workbook.CreateFont();
cellfontbt5.Boldweight = (short)FontBoldWeight.Bold;
cellfontbt5.FontHeightInPoints = 11;
cellStylebt5.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt5.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt5.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt5.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt5.WrapText = true;//设置换行这个要先设置
cellStylebt5.SetFont(cellfontbt5);
cellStylebt5.VerticalAlignment = VerticalAlignment.Center;
cellStylebt5.Alignment = HorizontalAlignment.Center;
HSSFPalette palette2 = workbook.GetCustomPalette(); //调色板实例
palette2.SetColorAtIndex(10, 226, 239, 218);
NPOI.HSSF.Util.HSSFColor hssFColor2 = palette2.FindColor(226, 239, 218);
cellStylebt5.FillForegroundColor = hssFColor2.Indexed ;
cellStylebt5.FillPattern = FillPattern.SolidForeground;
cellStylebt5.FillBackgroundColor = hssFColor2.Indexed;
ICellStyle cellStylebt8 = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt8 = workbook.CreateFont();
cellfontbt8.FontHeightInPoints = 10;
cellStylebt8.SetFont(cellfontbt8);
cellStylebt8.WrapText = true;//设置换行这个要先设置
cellStylebt8.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt8.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt8.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt8.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt8.VerticalAlignment = VerticalAlignment.Center;
cellStylebt8.Alignment = HorizontalAlignment.Center;
HSSFPalette palette3 = workbook.GetCustomPalette(); //调色板实例
palette3.SetColorAtIndex(11, 198, 224, 180);
NPOI.HSSF.Util.HSSFColor hssFColor3 = palette3.FindColor(198, 224, 180);
cellStylebt8.FillForegroundColor = hssFColor3.Indexed ;
cellStylebt8.FillPattern = FillPattern.SolidForeground;
cellStylebt8.FillBackgroundColor = hssFColor3.Indexed;
ICellStyle cellStylebt9 = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt9 = workbook.CreateFont();
cellfontbt9.FontHeightInPoints = 11;
cellfontbt9.Boldweight = (short)FontBoldWeight.Bold;
cellStylebt9.SetFont(cellfontbt9);
cellStylebt9.WrapText = true;//设置换行这个要先设置
cellStylebt9.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt9.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt9.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt9.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt9.VerticalAlignment = VerticalAlignment.Center;
cellStylebt9.Alignment = HorizontalAlignment.Center;
HSSFPalette palette4 = workbook.GetCustomPalette(); //调色板实例
palette4.SetColorAtIndex(12, 255, 242, 204);
NPOI.HSSF.Util.HSSFColor hssFColor4 = palette4.FindColor(255, 242, 204);
cellStylebt9.FillForegroundColor = hssFColor4.Indexed ; ;
cellStylebt9.FillPattern = FillPattern.SolidForeground;
cellStylebt9.FillBackgroundColor = hssFColor4.Indexed; ; ;
ICellStyle cellStylebt10 = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt10 = workbook.CreateFont();
cellfontbt10.Boldweight = (short)FontBoldWeight.Bold;
cellfontbt10.FontHeightInPoints = 11;
cellStylebt10.WrapText = true;//设置换行这个要先设置
cellStylebt10.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt10.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt10.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt10.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt10.SetFont(cellfontbt10);
cellStylebt10.VerticalAlignment = VerticalAlignment.Center;
cellStylebt10.Alignment = HorizontalAlignment.Center;
HSSFPalette palette5 = workbook.GetCustomPalette(); //调色板实例
palette5.SetColorAtIndex(13, 217, 225, 242);
NPOI.HSSF.Util.HSSFColor hssFColor5 = palette5.FindColor(217, 225, 242);
cellStylebt10.FillForegroundColor = hssFColor5.Indexed ;
cellStylebt10.FillPattern = FillPattern.SolidForeground;
cellStylebt10.FillBackgroundColor = hssFColor5.Indexed; ;
ICellStyle cellStylebt6 = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt6 = workbook.CreateFont();
cellfontbt6.Boldweight = (short)FontBoldWeight.Bold;
cellStylebt6.WrapText = true;//设置换行这个要先设置
cellfontbt6.FontHeightInPoints = 10;
cellStylebt6.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt6.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt6.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt6.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt6.SetFont(cellfontbt6);
cellStylebt6.VerticalAlignment = VerticalAlignment.Center;
cellStylebt6.Alignment = HorizontalAlignment.Center;
cellStylebt6.FillForegroundColor = hssFColor.Indexed ;
cellStylebt6.FillPattern = FillPattern.SolidForeground;
cellStylebt6.FillBackgroundColor = hssFColor.Indexed; ;
ICellStyle cellStylebt11 = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt11 = workbook.CreateFont();
cellfontbt11.FontHeightInPoints = 10;
cellStylebt11.WrapText = true;//设置换行这个要先设置
cellStylebt11.SetFont(cellfontbt11);
cellStylebt11.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt11.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt11.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt11.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt11.VerticalAlignment = VerticalAlignment.Center;
cellStylebt11.Alignment = HorizontalAlignment.Center;
ICellStyle cellStylebt12 = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt12 = workbook.CreateFont();
cellfontbt12.Boldweight = (short)FontBoldWeight.Bold;
cellfontbt12.FontHeightInPoints = 10;
cellStylebt12.WrapText = true;//设置换行这个要先设置
cellStylebt12.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt12.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt12.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt12.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt12.SetFont(cellfontbt12);
cellStylebt12.VerticalAlignment = VerticalAlignment.Center;
cellStylebt12.Alignment = HorizontalAlignment.Center;
cellStylebt12.FillForegroundColor = hssFColor5.Indexed;
cellStylebt12.FillPattern = FillPattern.SolidForeground;
cellStylebt12.FillBackgroundColor = hssFColor5.Indexed; ;
ICellStyle cellStylebt13 = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt13 = workbook.CreateFont();
cellfontbt13.Boldweight = (short)FontBoldWeight.Bold;
cellStylebt13.WrapText = true;//设置换行这个要先设置
cellfontbt13.FontHeightInPoints = 11;
cellStylebt13.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt13.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt13.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt13.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt13.SetFont(cellfontbt13);
cellStylebt13.VerticalAlignment = VerticalAlignment.Center;
cellStylebt13.Alignment = HorizontalAlignment.Center;
cellStylebt13.FillForegroundColor = hssFColor.Indexed;
cellStylebt13.FillPattern = FillPattern.SolidForeground;
cellStylebt13.FillBackgroundColor = hssFColor.Indexed; ;
ICellStyle cellStylebt14 = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt14 = workbook.CreateFont();
cellfontbt14.FontHeightInPoints = 10;
cellStylebt14.SetFont(cellfontbt14);
cellStylebt14.WrapText = true;//设置换行这个要先设置
cellStylebt14.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt14.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt14.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt14.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt14.VerticalAlignment = VerticalAlignment.Center;
cellStylebt14.Alignment = HorizontalAlignment.Center;
cellStylebt14.FillForegroundColor = hssFColor4.Indexed; ;
cellStylebt14.FillPattern = FillPattern.SolidForeground;
cellStylebt14.FillBackgroundColor = hssFColor4.Indexed; ; ;
ICellStyle cellStylebt15 = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt15 = workbook.CreateFont();
cellfontbt15.Boldweight = (short)FontBoldWeight.Bold;
cellfontbt15.FontHeightInPoints = 10;
cellStylebt15.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt15.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt15.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt15.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStylebt15.WrapText = true;//设置换行这个要先设置
cellStylebt15.SetFont(cellfontbt15);
cellStylebt15.VerticalAlignment = VerticalAlignment.Center;
cellStylebt15.Alignment = HorizontalAlignment.Center;
cellStylebt15.FillForegroundColor = hssFColor2.Indexed;
cellStylebt15.FillPattern = FillPattern.SolidForeground;
cellStylebt15.FillBackgroundColor = hssFColor2.Indexed;
int indexsource = -1;
for (int i = 0; i <= MergerHotSource[0].MergerHot.Count
;i++)
{
if (i == 0)
{
ICell cell = irow2.CreateCell(0);
cell.SetCellValue("来源");
cell.CellStyle = cellStylebt2;
indexsource = 0;
sheet.SetColumnWidth(0, 12 * 300);
}
else if (i >0&&i <= MergerHotSource[0].MergerHot.Count-2)
{
ICell cell = irow2.CreateCell(indexsource+1);
cell.SetCellValue(MergerHotSource[0].MergerHot[i - 1].Source);
cell.CellStyle = cellStylebt2;
if (i ==1 )
{
if (MergerHotSource[0].MergerHot[i - 1].Source=="12345")
{
indexsource = 6;
for (int z=2;z <= indexsource - 1;z++)
{
ICell cell4 = irow2.CreateCell(z);
cell4.CellStyle = cellStylebt2;
}
sheet.AddMergedRegion(new CellRangeAddress(3, 3, 1, indexsource-1));
}
else
{
indexsource = 5;
for (int z = 2; z <= indexsource - 1; z++)
{
ICell cell4 = irow2.CreateCell(z);
cell4.CellStyle = cellStylebt2;
}
sheet.AddMergedRegion(new CellRangeAddress(3, 3, 1, indexsource-1));
}
}
else
{
if (MergerHotSource[0].MergerHot[i - 1].Source == "12345")
{
for (int z = indexsource + 2; z <= indexsource + 5 ; z++)
{
ICell cell4 = irow2.CreateCell(z);
cell4.CellStyle = cellStylebt2;
}
sheet.AddMergedRegion(new CellRangeAddress(3, 3, indexsource + 1, indexsource + 5));
indexsource = indexsource + 6;
}
else
{
for (int z = indexsource + 2; z <= indexsource + 4; z++)
{
ICell cell4 = irow2.CreateCell(z);
cell4.CellStyle = cellStylebt2;
}
sheet.AddMergedRegion(new CellRangeAddress(3, 3, indexsource + 1, indexsource + 4));
indexsource += 5;
}
}
}
else
{
ICell cell = irow2.CreateCell(indexsource + 1);
if (i == MergerHotSource[0].MergerHot.Count - 1)
{
cell.SetCellValue("当日小计");
}
else if (i == MergerHotSource[0].MergerHot.Count )
{
cell.SetCellValue("累计");
}
for (int z = indexsource + 2; z <= indexsource + 5; z++)
{
ICell cell4 = irow2.CreateCell(z);
cell4.CellStyle = cellStylebt2;
}
sheet.AddMergedRegion(new CellRangeAddress(3, 3, indexsource + 1, indexsource + 5));
cell.CellStyle = cellStylebt3;
indexsource += 6;
}
}
IRow irow3 = sheet.CreateRow(4);
indexsource = 0;
sheet.CreateRow(4).Height = 200 * 8;
for (int i = 0; i <= MergerHotSource[0].MergerHot.Count; i++)
{
if (i == 0)
{
ICell cell = irow3.CreateCell(0);
cell.SetCellValue("日期");
cell.CellStyle = cellStylebt4;
}
else if (i > 0 && i <= MergerHotSource[0].MergerHot.Count - 2)
{
if (i == 1)
{
indexsource = 1;
if (MergerHotSource[0].MergerHot[i - 1].Source == "12345")
{
for (int j = 0; j < 5; j++)
{
ICell cell = irow3.CreateCell(indexsource);
switch (j)
{
case 0:
cell.SetCellValue("来\n电\n量\n");
cell.CellStyle = cellStylebt5;
sheet.SetColumnWidth(1, 12 * 100);
break;
case 1:
cell.SetCellValue("接\n通\n量\n");
cell.CellStyle = cellStylebt9;
sheet.SetColumnWidth(2, 12 * 100);
break;
case 2:
cell.SetCellValue("接\n通\n率\n");
cell.CellStyle = cellStylebt13;
sheet.SetColumnWidth(3, 12 * 100);
break;
case 3:
cell.SetCellValue("未\n接\n通\n");
cell.CellStyle = cellStylebt4;
sheet.SetColumnWidth(4, 12 * 100);
break;
case 4:
cell.SetCellValue("主\n动\n放\n弃\n");
cell.CellStyle = cellStylebt4;
sheet.SetColumnWidth(5, 12 * 100);
break;
}
indexsource += 1;
}
sheet.SetColumnWidth(6, 12 * 35);
indexsource = 6;
}
else
{
indexsource = 1;
for (int j = 0; j < 4; j++)
{
ICell cell = irow3.CreateCell(indexsource);
switch (j)
{
case 0:
cell.SetCellValue("来\n电\n量\n");
cell.CellStyle = cellStylebt5;
sheet.SetColumnWidth(1, 12 * 100);
break;
case 1:
cell.SetCellValue("接\n通\n量\n");
cell.CellStyle = cellStylebt9;
sheet.SetColumnWidth(2, 12 * 100);
break;
case 2:
cell.SetCellValue("未\n接\n通\n");
cell.CellStyle = cellStylebt4;
sheet.SetColumnWidth(3, 12 * 100);
break;
case 3:
cell.SetCellValue("主\n动\n放\n弃\n");
cell.CellStyle = cellStylebt4;
sheet.SetColumnWidth(4, 12 * 100);
break;
}
indexsource += 1;
}
sheet.SetColumnWidth(5, 12 * 35);
indexsource = 5;
}
}
else
{
if (MergerHotSource[0].MergerHot[i - 1].Source == "12345")
{
for (int j = 0; j < 5; j++)
{
indexsource += 1;
ICell cell = irow3.CreateCell(indexsource);
switch (j)
{
case 0:
cell.SetCellValue("来\n电\n量\n");
cell.CellStyle = cellStylebt5;
sheet.SetColumnWidth(indexsource, 12 * 100);
break;
case 1:
cell.SetCellValue("接\n通\n量\n");
cell.CellStyle = cellStylebt9;
sheet.SetColumnWidth(indexsource, 12 * 100);
break;
case 2:
cell.SetCellValue("接\n通\n率\n");
cell.CellStyle = cellStylebt2;
sheet.SetColumnWidth(7, 12 * 100);
break;
case 3:
cell.SetCellValue("未\n接\n通\n");
cell.CellStyle = cellStylebt4;
sheet.SetColumnWidth(indexsource, 12 * 100);
break;
case 4:
cell.SetCellValue("主\n动\n放\n弃\n");
cell.CellStyle = cellStylebt4;
sheet.SetColumnWidth(indexsource, 12 * 100);
break;
}
}
indexsource += 1;
sheet.SetColumnWidth(indexsource, 12 * 35);
}
else
{
for (int j = 0; j < 4; j++)
{
indexsource += 1;
ICell cell = irow3.CreateCell(indexsource);
switch (j)
{
case 0:
cell.SetCellValue("来\n电\n量\n");
cell.CellStyle = cellStylebt5;
sheet.SetColumnWidth(indexsource, 12 * 100);
break;
case 1:
cell.SetCellValue("接\n通\n量\n");
cell.CellStyle = cellStylebt9;
sheet.SetColumnWidth(indexsource, 12 * 100);
break;
case 2:
cell.SetCellValue("未\n接\n通\n");
cell.CellStyle = cellStylebt4;
sheet.SetColumnWidth(indexsource, 12 * 100);
break;
case 3:
cell.SetCellValue("主\n动\n放\n弃\n");
cell.CellStyle = cellStylebt4;
sheet.SetColumnWidth(indexsource, 12 * 100);
break;
}
}
indexsource += 1;
sheet.SetColumnWidth(indexsource, 12 * 35);
}
}
}
else
{
for (int j = 0; j < 5; j++)
{
indexsource += 1;
ICell cell = irow3.CreateCell(indexsource);
switch (j)
{
case 0:
cell.SetCellValue("来\n电\n量\n");
cell.CellStyle = cellStylebt5;
sheet.SetColumnWidth(indexsource, 12 * 100);
break;
case 1:
cell.SetCellValue("接\n通\n量\n");
cell.CellStyle = cellStylebt9;
sheet.SetColumnWidth(indexsource, 12 * 100);
break;
case 2:
cell.SetCellValue("未\n接\n通\n");
cell.CellStyle = cellStylebt4;
sheet.SetColumnWidth(indexsource, 12 * 100);
break;
case 3:
cell.SetCellValue("主\n动\n放\n弃\n");
cell.CellStyle = cellStylebt4;
sheet.SetColumnWidth(indexsource, 12 * 100);
break;
case 4:
cell.SetCellValue("接\n通\n率\n");
cell.CellStyle = cellStylebt10;
sheet.SetColumnWidth(indexsource, 12 * 200);
break;
}
}
indexsource += 1;
sheet.SetColumnWidth(indexsource, 12 * 35);
}
}
for (int i=0;i< MergerHotSource.Count; i++)
{
IRow irow4 = sheet.CreateRow(5+i );
for (int j = 0; j <= MergerHotSource[i].MergerHot.Count; j++)
{
if (j == 0)
{
ICell cell = irow4.CreateCell(0);
cell.SetCellValue(MergerHotSource[i].Data);
cell.CellStyle = cellStylebt11;
indexsource = 0;
}
else
{
if (i == MergerHotSource.Count-1)
{
if (j == 1)
{
if (MergerHotSource[i].MergerHot[j - 1].Source == "12345")
{
for (int z = 0; z < 5; z++)
{
indexsource += 1;
ICell cell = irow4.CreateCell(indexsource);
switch (z)
{
case 0:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Call);
cell.CellStyle = cellStylebt8;
break;
case 1:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Connect);
cell.CellStyle = cellStylebt8;
break;
case 2:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].rate);
cell.CellStyle = cellStylebt8;
break;
case 3:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Notconnected);
cell.CellStyle = cellStylebt8;
break;
case 4:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].voluntarily);
cell.CellStyle = cellStylebt8;
break;
}
}
indexsource += 1;
}
else
{
for (int z = 0; z < 4; z++)
{
indexsource += 1;
ICell cell = irow4.CreateCell(indexsource);
switch (z)
{
case 0:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Call);
cell.CellStyle = cellStylebt8;
break;
case 1:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Connect);
cell.CellStyle = cellStylebt8;
break;
case 2:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Notconnected);
cell.CellStyle = cellStylebt8;
break;
case 3:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].voluntarily);
cell.CellStyle = cellStylebt8;
break;
}
}
indexsource += 1;
}
}
else
{
if (MergerHotSource[i].MergerHot[j - 1].Source == "12345")
{
for (int z = 0; z < 5; z++)
{
indexsource += 1;
ICell cell = irow4.CreateCell(indexsource);
switch (z)
{
case 0:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Call);
cell.CellStyle = cellStylebt8;
break;
case 1:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Connect);
cell.CellStyle = cellStylebt8;
break;
case 2:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].rate);
cell.CellStyle = cellStylebt8;
break;
case 3:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Notconnected);
cell.CellStyle = cellStylebt8;
break;
case 4:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].voluntarily);
cell.CellStyle = cellStylebt8;
break;
}
}
indexsource += 1;
}
else if (MergerHotSource[i].MergerHot[j - 1].Source == "当日小计"
|| MergerHotSource[i].MergerHot[j - 1].Source == "累计")
{
for (int z = 0; z < 5; z++)
{
indexsource += 1;
ICell cell = irow4.CreateCell(indexsource);
switch (z)
{
case 0:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Call);
cell.CellStyle = cellStylebt8;
break;
case 1:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Connect);
cell.CellStyle = cellStylebt8;
break;
case 2:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Notconnected);
cell.CellStyle = cellStylebt8;
break;
case 3:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].voluntarily);
cell.CellStyle = cellStylebt8;
break;
case 4:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].rate);
cell.CellStyle = cellStylebt8;
break;
}
}
indexsource += 1;
}
else
{
for (int z = 0; z < 4; z++)
{
indexsource += 1;
ICell cell = irow4.CreateCell(indexsource);
switch (z)
{
case 0:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Call);
cell.CellStyle = cellStylebt8;
break;
case 1:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Connect);
cell.CellStyle = cellStylebt8;
break;
case 2:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Notconnected);
cell.CellStyle = cellStylebt8;
break;
case 3:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].voluntarily);
cell.CellStyle = cellStylebt8;
break;
}
}
indexsource += 1;
}
}
}
else
{
if (j == 1)
{
if (MergerHotSource[i].MergerHot[j - 1].Source == "12345")
{
for (int z = 0; z < 5; z++)
{
indexsource += 1;
ICell cell = irow4.CreateCell(indexsource);
switch (z)
{
case 0:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Call);
cell.CellStyle = cellStylebt15;
break;
case 1:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Connect);
cell.CellStyle = cellStylebt14;
break;
case 2:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].rate);
cell.CellStyle = cellStylebt6;
break;
case 3:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Notconnected);
cell.CellStyle = cellStylebt11;
break;
case 4:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].voluntarily);
cell.CellStyle = cellStylebt11;
break;
}
}
indexsource += 1;
}
else
{
for (int z = 0; z < 4; z++)
{
indexsource += 1;
ICell cell = irow4.CreateCell(indexsource);
switch (z)
{
case 0:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Call);
cell.CellStyle = cellStylebt15;
break;
case 1:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Connect);
cell.CellStyle = cellStylebt14;
break;
case 2:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Notconnected);
cell.CellStyle = cellStylebt11;
break;
case 3:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].voluntarily);
cell.CellStyle = cellStylebt11;
break;
}
}
indexsource += 1;
}
}
else
{
if (MergerHotSource[i].MergerHot[j - 1].Source == "12345")
{
for (int z = 0; z < 5; z++)
{
indexsource += 1;
ICell cell = irow4.CreateCell(indexsource);
switch (z)
{
case 0:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Call);
cell.CellStyle = cellStylebt15;
break;
case 1:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Connect);
cell.CellStyle = cellStylebt14;
break;
case 2:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].rate);
cell.CellStyle = cellStylebt6;
break;
case 3:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Notconnected);
cell.CellStyle = cellStylebt11;
break;
case 4:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].voluntarily);
cell.CellStyle = cellStylebt11;
break;
}
}
indexsource += 1;
}
else if (MergerHotSource[i].MergerHot[j - 1].Source == "当日小计"
|| MergerHotSource[i].MergerHot[j - 1].Source == "累计")
{
for (int z = 0; z < 5; z++)
{
indexsource += 1;
ICell cell = irow4.CreateCell(indexsource);
switch (z)
{
case 0:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Call);
cell.CellStyle = cellStylebt15;
break;
case 1:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Connect);
cell.CellStyle = cellStylebt14;
break;
case 2:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Notconnected);
cell.CellStyle = cellStylebt11;
break;
case 3:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].voluntarily);
cell.CellStyle = cellStylebt11;
break;
case 4:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].rate);
cell.CellStyle = cellStylebt12;
break;
}
}
indexsource += 1;
}
else
{
for (int z = 0; z < 4; z++)
{
indexsource += 1;
ICell cell = irow4.CreateCell(indexsource);
switch (z)
{
case 0:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Call);
cell.CellStyle = cellStylebt15;
break;
case 1:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Connect);
cell.CellStyle = cellStylebt14;
break;
case 2:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].Notconnected);
cell.CellStyle = cellStylebt11;
break;
case 3:
cell.SetCellValue(MergerHotSource[i]
.MergerHot[j - 1].voluntarily);
cell.CellStyle = cellStylebt11;
break;
}
}
indexsource += 1;
}
}
}
}
}
}
//自适应列宽度
//for (int i = 0; i < 20; i++)
//{
// sheet.AutoSizeColumn(i);
// // sheet.SetColumnWidth(i, 20 * 256);
//}
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("Access-Control-Expose-Headers", "Content-Disposition");
curContext.Response.AppendHeader("Content-Disposition",
"attachment;filename=" + HttpUtility.UrlEncode("归并数据统计" + ".xls", Encoding.UTF8));
curContext.Response.BinaryWrite(ms.GetBuffer());
workbook = null;
ms.Close();
ms.Dispose();
curContext.Response.End();
}
return "";
}
catch
{
return "导出失败!";
}
}
///
/// 弹出下载框导出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("Access-Control-Expose-Headers", "Content-Disposition");
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("Access-Control-Expose-Headers", "Content-Disposition");
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);
ICellStyle cellStylebt = workbook.CreateCellStyle();
NPOI.SS.UserModel.IFont cellfontbt = workbook.CreateFont();
cellfontbt.Boldweight = (short)FontBoldWeight.Bold;
cellStylebt.SetFont(cellfontbt);
cellStylebt.VerticalAlignment = VerticalAlignment.Center;
cellStylebt.Alignment = HorizontalAlignment.Center;
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 = cellStylebt;
sheet.AddMergedRegion(new CellRangeAddress(1, 1, 0, 7));
//((HSSFSheet)sheet).SetEnclosedBorderOfRegion(new CellRangeAddress(1, 1, 0, 7), BorderStyle.Thin, NPOI.HSSF.Util.HSSFColor.Black.Index);
#region 话务受理情况
DataTable dt1 = ds.Tables[0];
IRow irow2 = sheet.CreateRow(2);
ICell cell2 = irow2.CreateCell(0);
cell2.SetCellValue("话务受理情况");
cell2.CellStyle = cellStylebt;
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 = cellStylebt;
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;
ICell cell83 = irow8.CreateCell(2);
cell83.SetCellValue("在线办理率");
cell83.CellStyle = cellStyle;
ICell cell84 = irow8.CreateCell(3);
cell84.SetCellValue(dt2.Rows[0]["zxbjrate"].ToString());
cell84.CellStyle = cellStyle;
#endregion
#region 政府热线受理情况
DataTable dt3 = ds.Tables[2];
IRow irow9 = sheet.CreateRow(9);
ICell cell9 = irow9.CreateCell(0);
cell9.SetCellValue("政府热线受理情况");
cell9.CellStyle = cellStylebt;
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 = cellStylebt;
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 = cellStylebt;
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("Access-Control-Expose-Headers", "Content-Disposition");
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 ExportToExcel2(string Name, DataTable dt, string[] cols = null)
{
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);
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++;
//}
for (int i = 0; i < dt.Columns.Count; i++)
{
ICell cell = headerRow.CreateCell(icolIndex);
cell.SetCellValue(dt.Rows[0][i].ToString());
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)
{
if (iRowIndex > 0)
{
int iCellIndex = 0;
IRow irow = sheet.CreateRow(iRowIndex);
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("Access-Control-Expose-Headers", "Content-Disposition");
curContext.Response.AppendHeader("Content-Disposition",
"attachment;filename=" + HttpUtility.UrlEncode(Name + ".xls", Encoding.UTF8));
curContext.Response.BinaryWrite(ms.GetBuffer());
workbook = null;
ms.Close();
ms.Dispose();
curContext.Response.End();
}
//}
return "";
}
catch
{
return "导出失败!";
}
}
///
/// 导出word
///
///
public byte[] ExportToWordDemo()
{
try
{
//创建document文档对象对象实例
NPOI.XWPF.UserModel.XWPFDocument document = new NPOI.XWPF.UserModel.XWPFDocument();
document.CreateParagraph();
NPOI.XWPF.UserModel.XWPFParagraph paragraph = document.CreateParagraph();//创建段落对象
paragraph.Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.CENTER;//文字显示位置,段落排列(左对齐,居中,右对齐)
NPOI.XWPF.UserModel.XWPFRun xwpfRun = paragraph.CreateRun();//创建段落文本对象
xwpfRun.IsBold = true;//文字加粗
xwpfRun.SetText("安阳市12345政务服务热线交办单");//填充内容
xwpfRun.FontSize = 18;//设置文字大小
xwpfRun.SetFontFamily("宋体", NPOI.XWPF.UserModel.FontCharRange.None); //设置标题样式如:(微软雅黑,隶书,楷体)根据自己的需求而定
document.CreateParagraph();
//创建文档中的表格对象实例
NPOI.XWPF.UserModel.XWPFTable table = document.CreateTable(9, 8);//显示的行列数rows:3行,cols:4列
table.Width = 5200;//总宽度
table.SetColumnWidth(0, 650); /* 设置列宽 */
table.SetColumnWidth(1, 650);
table.SetColumnWidth(2, 650);
table.SetColumnWidth(3, 650);
table.SetColumnWidth(4, 650);
table.SetColumnWidth(5, 650);
table.SetColumnWidth(6, 650);
table.SetColumnWidth(7, 650);
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 8; j++)
{
var cp = table.GetRow(i).GetCell(j).GetCTTc().AddNewTcPr();
cp.AddNewVAlign().val = ST_VerticalJc.center;
}
}
//第一行
table.GetRow(0).GetCTRow().AddNewTrPr().AddNewTrHeight().val= (ulong)300;
var cp0 = table.GetRow(0).GetCell(0).GetCTTc().AddNewTcPr();
cp0.AddNewVMerge().val = ST_Merge.restart;
cp0.AddNewVAlign().val = ST_VerticalJc.center;
cp0.tcW = new CT_TblWidth();cp0.tcW.w = "650";cp0.tcW.type = ST_TblWidth.dxa;
table.GetRow(0).GetCell(0).SetParagraph(GetParagraph(table, true, "事项编号"));
var cp1 = table.GetRow(0).GetCell(1).GetCTTc().AddNewTcPr();
cp1.AddNewVMerge().val = ST_Merge.restart;
cp1.AddNewVAlign().val = ST_VerticalJc.center;
table.GetRow(0).GetCell(1).SetParagraph(GetParagraph(table, false, "DH9941052721041200351"));
table.GetRow(0).GetCell(2).SetParagraph(GetParagraph(table, true, "工单来源"));
table.GetRow(0).GetCell(3).SetParagraph(GetParagraph(table, false, "市长电话"));
table.GetRow(0).GetCell(4).SetParagraph(GetParagraph(table, true, "办理时限"));
table.GetRow(0).GetCell(5).SetParagraph(GetParagraph(table, false, "2021-04-21"));
table.GetRow(0).GetCell(6).SetParagraph(GetParagraph(table, true, "联系电话"));
table.GetRow(0).GetCell(7).SetParagraph(GetParagraph(table, false, "017185328292"));
//第二行
table.GetRow(1).GetCTRow().AddNewTrPr().AddNewTrHeight().val = (ulong)300;
var cp2 = table.GetRow(1).GetCell(0).GetCTTc().AddNewTcPr();
cp2.AddNewVMerge().val = ST_Merge.@continue;
var cp3 = table.GetRow(1).GetCell(1).GetCTTc().AddNewTcPr();
cp3.AddNewVMerge().val = ST_Merge.@continue;
table.GetRow(1).GetCell(2).SetParagraph(GetParagraph(table, true, "签收时间"));
table.GetRow(1).GetCell(3).SetParagraph(GetParagraph(table, false, "2021-04-12"));
table.GetRow(1).GetCell(4).SetParagraph(GetParagraph(table, true, "办理时间"));
table.GetRow(1).GetCell(5).SetParagraph(GetParagraph(table, false, "2021-04-12"));
table.GetRow(1).GetCell(6).SetParagraph(GetParagraph(table, true, "来电人"));
table.GetRow(1).GetCell(7).SetParagraph(GetParagraph(table, false, "徐青田"));
//第三行
table.GetRow(2).GetCTRow().AddNewTrPr().AddNewTrHeight().val = (ulong)300;
table.GetRow(2).MergeCells(1, 7);//合并列
table.GetRow(2).GetCell(0).SetParagraph(GetParagraph(table, true, "事项区域"));
table.GetRow(2).GetCell(1).SetParagraph(GetParagraph(table, false, "河南省郑州市高新技术开发区大学科技园东区", false));
//第四行
table.GetRow(3).GetCTRow().AddNewTrPr().AddNewTrHeight().val = (ulong)2000;
table.GetRow(3).MergeCells(1, 7);//合并列
table.GetRow(3).GetCell(0).SetParagraph(GetParagraph(table, true, "内容摘要"));
table.GetRow(3).GetCell(1).SetParagraph(GetParagraph(table, false, "来电人反映:内黄县城关镇宛庄村第四生产队第二、三小组土地至今无法确权(遗留问题),村委会和镇政府承诺给解决,至今未解决,请政府责成相关部门调查处理。", false));
//第五行
table.GetRow(4).GetCTRow().AddNewTrPr().AddNewTrHeight().val = (ulong)300;
table.GetRow(4).MergeCells(1, 4);//合并列
table.GetRow(4).MergeCells(3, 4);//合并列
table.GetRow(4).GetCell(0).SetParagraph(GetParagraph(table, true, "承办单位"));
table.GetRow(4).GetCell(1).SetParagraph(GetParagraph(table, false, "内黄县政府"));
table.GetRow(4).GetCell(2).SetParagraph(GetParagraph(table, true, "协办单位"));
table.GetRow(4).GetCell(3).SetParagraph(GetParagraph(table, false, "内黄县政府"));
//第六行
table.GetRow(5).GetCTRow().AddNewTrPr().AddNewTrHeight().val = (ulong)2000;
table.GetRow(5).MergeCells(1, 7);//合并列
table.GetRow(5).GetCell(0).SetParagraph(GetParagraph(table, true, "调度意见"));
table.GetRow(5).GetCell(1).SetParagraph(GetParagraph(table, false, "请于1小时内与来电人取得联系(匿名除外),并于7个工作日内将办理情况反馈来电人,并将办理结果报市长便民公开电话受理中心,同时做好来电人信息保密工作。(若超期将进行通报;若无故不回复,将转交市委市政府督查局。)", false));
//第七行
table.GetRow(6).GetCTRow().AddNewTrPr().AddNewTrHeight().val = (ulong)1500;
table.GetRow(6).MergeCells(1, 7);//合并列
table.GetRow(6).GetCell(0).SetParagraph(GetParagraph(table, true, "承办意见"));
table.GetRow(6).GetCell(1).SetParagraph(GetParagraph(table, false, "请于1小时内与来电人取得联系(匿名除外),并于7个工作日内将办理情况反馈来电人,并将办理结果报市长便民公开电话受理中心,同时做好来电人信息保密工作。(若超期将进行通报;若无故不回复,将转交市委市政府督查局。)", false));
//第八行
table.GetRow(7).GetCTRow().AddNewTrPr().AddNewTrHeight().val = (ulong)1500;
table.GetRow(7).MergeCells(1, 7);//合并列
table.GetRow(7).GetCell(0).SetParagraph(GetParagraph(table, true, "领导批示"));
table.GetRow(7).GetCell(1).SetParagraph(GetParagraph(table, false, "请于1小时内与来电人取得联系(匿名除外),并于7个工作日内将办理情况反馈来电人,并将办理结果报市长便民公开电话受理中心,同时做好来电人信息保密工作。(若超期将进行通报;若无故不回复,将转交市委市政府督查局。)", false));
//第九行
table.GetRow(8).GetCTRow().AddNewTrPr().AddNewTrHeight().val = (ulong)2000;
table.GetRow(8).MergeCells(1, 7);//合并列
table.GetRow(8).GetCell(0).SetParagraph(GetParagraph(table, true, "处理结果"));
table.GetRow(8).GetCell(1).SetParagraph(GetParagraph(table, false, "2021-04-12 10:19:14 内黄县政府部门接到市长电话来源工单(编号:DH9941052721041200351)反映土地确权问题,已联系郑州第三方中标土地确权公司负责人待工作人员到我县后,就可以确权 [办理结果:已办理,承办人:刘志强,职务:城关镇人大主席,联系电话:15824608111,刘志强向当事人进行了反馈,当事人对结果表示未评价。]", false));
document.CreateParagraph();
NPOI.XWPF.UserModel.XWPFParagraph paragraph1 = document.CreateParagraph();//创建段落对象
paragraph1.Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.CENTER;//文字显示位置,段落排列(左对齐,居中,右对齐)
NPOI.XWPF.UserModel.XWPFRun xwpfRun1 = paragraph1.CreateRun();//创建段落文本对象
xwpfRun1.IsBold = true;//文字加粗
xwpfRun1.SetText("联系电话:(0372) 12345审核人:8000 调度员:8065");//填充内容
xwpfRun1.FontSize = 9;//设置文字大小
xwpfRun1.SetFontFamily("宋体", NPOI.XWPF.UserModel.FontCharRange.None); //设置标题样式如:(微软雅黑,隶书,楷体)根据自己的需求而定
NPOI.XWPF.UserModel.XWPFParagraph paragraph2 = document.CreateParagraph();//创建段落对象
paragraph2.Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.RIGHT;//文字显示位置,段落排列(左对齐,居中,右对齐)
NPOI.XWPF.UserModel.XWPFRun xwpfRun2 = paragraph2.CreateRun();//创建段落文本对象
using (FileStream picData = new FileStream(HttpContext.Current.Server.MapPath("/Upload/Word/word.png"), FileMode.Open, FileAccess.Read))
{
//图片的文件流 图片类型 图片名称 设置的宽度以及高度
xwpfRun2.AddPicture(picData, (int)PictureType.PNG, "word.png", NPOI.Util.Units.ToEMU(100), NPOI.Util.Units.ToEMU(100));
}
using (MemoryStream ms = new MemoryStream())
{
document.Write(ms);
return ms.GetBuffer();
}
}
catch(Exception ex)
{
return null;
}
}
///
///
///
///
///
///
///
private NPOI.XWPF.UserModel.XWPFParagraph GetParagraph(NPOI.XWPF.UserModel.XWPFTable table,bool isbold,string content, bool iscenter=true)
{
var para = new CT_P();
//设置单元格文本对齐
para.AddNewPPr().AddNewTextAlignment();
NPOI.XWPF.UserModel.XWPFParagraph paragraph = new NPOI.XWPF.UserModel.XWPFParagraph(para,table.Body);
paragraph.VerticalAlignment = NPOI.XWPF.UserModel.TextAlignment.CENTER;
if (iscenter)
{
paragraph.Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.CENTER;
}
else
{
paragraph.Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.LEFT;
}
NPOI.XWPF.UserModel.XWPFRun xwpfRun = paragraph.CreateRun();//创建段落文本对象
xwpfRun.IsBold = isbold;//文字加粗
xwpfRun.SetText(content);//填充内容
xwpfRun.FontSize = 9;//设置文字大小
xwpfRun.SetFontFamily("宋体", NPOI.XWPF.UserModel.FontCharRange.None); //设置标题样式如:(微软雅黑,隶书,楷体)根据自己的需求而定
return paragraph;
}
///
/// 插入图片
///
///
///
private NPOI.XWPF.UserModel.XWPFParagraph GetParagraphImg(NPOI.XWPF.UserModel.XWPFTable table, bool isbold, string content, bool iscenter = true)
{
var para = new CT_P();
//设置单元格文本对齐
para.AddNewPPr().AddNewTextAlignment();
NPOI.XWPF.UserModel.XWPFParagraph paragraph = new NPOI.XWPF.UserModel.XWPFParagraph(para, table.Body);
paragraph.VerticalAlignment = NPOI.XWPF.UserModel.TextAlignment.CENTER;
if (iscenter)
{
paragraph.Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.CENTER;
}
else
{
paragraph.Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.LEFT;
}
NPOI.XWPF.UserModel.XWPFRun xwpfRun = paragraph.CreateRun();//创建段落文本对象
xwpfRun.IsBold = isbold;//文字加粗
xwpfRun.SetText(content);//填充内容
xwpfRun.FontSize = 9;//设置文字大小
xwpfRun.SetFontFamily("宋体", NPOI.XWPF.UserModel.FontCharRange.None); //设置标题样式如:(微软雅黑,隶书,楷体)根据自己的需求而定
using (FileStream picData = new FileStream(HttpContext.Current.Server.MapPath("/Upload/Word/word.png"), FileMode.Open, FileAccess.Read))
{
//图片的文件流 图片类型 图片名称 设置的宽度以及高度
xwpfRun.AddPicture(picData, (int)PictureType.PNG, "word.png", NPOI.Util.Units.ToEMU(100), NPOI.Util.Units.ToEMU(100));
}
return paragraph;
}
}
}