public static string StatisticsSR(string parmStr)
{ try
{ StatisticsSRInfo parm = JsonConvert.DeserializeObject<StatisticsSRInfo>(parmStr); ServieRequestService ws = new ServieRequestService();
ws.Url = ConfigurationManager.AppSettings["ServiceRequestService"];
ReportDown.ServiceRequestService.MySoapHeader header = new ReportDown.ServiceRequestService.MySoapHeader();
string databaseStr = "UserId:0," + "Pass:," + "Time:" + DateTime.Now.ToString("u").Substring(0, 10) + ",Database:" + ConnManager.GetDatabase();
header.database = DES1.des(databaseStr).Replace("%2B", "+");
ws.MySoapHeaderValue = header; SRStatisticsInfo[] ds = ws.StatisticsSR(parm.statisticsType, parm.fromDate, parm.toDate, parm.groupBy, parm.orderDirection);
//以上是获取数据
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
app.Visible = false;
app.UserControl = true;
app.DisplayAlerts = false;//不弹出窗口 Microsoft.Office.Interop.Excel.Workbooks workbooks = app.Workbooks;
Microsoft.Office.Interop.Excel._Workbook workbook = workbooks.Add(fileDir + "SRStatistics_" + parm.graphType + ".xlsx"); //加载模板
Microsoft.Office.Interop.Excel.Sheets sheets = workbook.Sheets;
Microsoft.Office.Interop.Excel._Worksheet worksheet = (Microsoft.Office.Interop.Excel._Worksheet)sheets.get_Item(1); //第一个工作薄。
if (worksheet == null)
return "Error:worksheet not exists in workbook! "; //工作薄中没有工作表.
//写入数据,Excel索引从1开始。
if (parm.groupBy == "year" || parm.groupBy == "quarter" || parm.groupBy == "month" || parm.groupBy == "day")
{
worksheet.Cells[2, 1] = "时间段";
worksheet.Cells[2, 2] = "请求总数";
for (int i = 0; i < ds.Length; i++)
{
int row_ = 3 + i; //Excel模板上表头和标题行占了2行,根据实际模板需要修改;
worksheet.Cells[row_, 1] = ds[i].groupValue;
worksheet.Cells[row_, 2] = ds[i].totalCount;
}
}
else
{
if (parm.groupBy == "province")
{
worksheet.Cells[2, 1] = "地区";
worksheet.Cells[2, 2] = "请求总数";
for (int i = 0; i < ds.Length; i++)
{
int row_ = 3 + i;
worksheet.Cells[row_, 1] = ds[i].provinceName;
worksheet.Cells[row_, 2] = ds[i].totalCount;
}
}
else if (parm.groupBy == "customer")
{
worksheet.Cells[2, 1] = "客户";
worksheet.Cells[2, 2] = "请求总数";
for (int i = 0; i < ds.Length; i++)
{
int row_ = 3 + i;
worksheet.Cells[row_, 1] = ds[i].customerName;
worksheet.Cells[row_, 2] = ds[i].totalCount;
}
}
else if (parm.groupBy == "department")
{
worksheet.Cells[2, 1] = "部门";
worksheet.Cells[2, 2] = "请求总数";
for (int i = 0; i < ds.Length; i++)
{
int row_ = 3 + i;
worksheet.Cells[row_, 1] = ds[i].departmentName;
worksheet.Cells[row_, 2] = ds[i].totalCount;
}
}
else if (parm.groupBy == "owner")
{
worksheet.Cells[2, 1] = "员工";
worksheet.Cells[2, 2] = "请求总数";
for (int i = 0; i < ds.Length; i++)
{
int row_ = 3 + i;
worksheet.Cells[row_, 1] = ds[i].ownerName;
worksheet.Cells[row_, 2] = ds[i].totalCount;
}
}
else if (parm.groupBy == "productId")
{
worksheet.Cells[2, 1] = "产品";
worksheet.Cells[2, 2] = "请求总数";
for (int i = 0; i < ds.Length; i++)
{
int row_ = 3 + i;
worksheet.Cells[row_, 1] = ds[i].productName;
worksheet.Cells[row_, 2] = ds[i].totalCount;
}
}
else if (parm.groupBy == "item")
{
worksheet.Cells[2, 1] = "配件";
worksheet.Cells[2, 2] = "请求总数";
for (int i = 0; i < ds.Length; i++)
{
int row_ = 3 + i;
worksheet.Cells[row_, 1] = ds[i].productName;
worksheet.Cells[row_, 2] = ds[i].totalCount;
}
}
else if (parm.groupBy == "faultPoint")
{
worksheet.Cells[2, 1] = "故障点";
worksheet.Cells[2, 2] = "请求总数";
for (int i = 0; i < ds.Length; i++)
{
int row_ = 3 + i;
worksheet.Cells[row_, 1] = ds[i].faultPointName;
worksheet.Cells[row_, 2] = ds[i].totalCount;
}
}
else
{
worksheet.Cells[2, 1] = "故障类型";
worksheet.Cells[2, 2] = "请求总数";
for (int i = 0; i < ds.Length; i++)
{
int row_ = 3 + i;
worksheet.Cells[row_, 1] = ds[i].faultTypeName;
worksheet.Cells[row_, 2] = ds[i].totalCount;
}
}
}
//Microsoft.Office.Interop.Excel.Range rg = worksheet.Cells.get_Range("A3", worksheet.Cells[ds.Length + 2, 8]);
//rg.Borders.LineStyle = 1; //单元格加边框。
worksheet.Columns.AutoFit(); //自动调整列宽。
string savaPath = fileDir + "服务请求统计.xlsx";
workbook.SaveAs(savaPath, Missing.Value, Missing.Value, Missing.Value, false, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
workbook.Close(); return savaPath;
}
catch (Exception e)
{
return ("Error:" + e.Message);
}
}

  

导出带图形的数据excel表的更多相关文章

  1. 导出数据excel表--身份证号后三位是0--〉还原

    导出数据excel表的身份证号后三位是0,怎么办? 数据导出前,在身份证号前加任意符号即可 例如: 结果

  2. jsp导出table数据excel表

    <html> <head> <meta http-equiv="content-Type" content="text/html;chars ...

  3. 如何使用mysqldump命令导入导出数据库下的数据或表结构(远程or本地都适合)

    不多说,直接上干货! https://www.cloudera.com/documentation/manager/5-1-x/Cloudera-Manager-Installation-Guide/ ...

  4. sqlserver怎么将excel表的数据导入到数据库中

    在数据库初始阶段,我们有些数据在EXCEL中做好之后,需要将EXCEL对应列名(导入后对应数据库表的字段名),对应sheet(改名为导入数据库之后的表名)导入指定数据库, 相当于导入一张表的整个数据. ...

  5. thinkphp导入导出excel表单数据

    在PHP项目经常要导入导出Excel表单. 先去下载PHPExcel类库文件,放到相应位置. 我在thinkphp框架中的位置为ThinkPHP/Library/Org/Util/ 导入 在页面上传e ...

  6. 将数据导出成excel表

    /// <summary> /// 生成excel表 /// </summary> /// <param name="dt">数据表</p ...

  7. 【ITOO 1】将List数据导出Excel表

    需求描述:在课表导入的时候,首先给用户提供模板(excel),然后将用户填写好的数据读取到list集合中.再进行判空处赋值处理,以及去重处理.这篇博客,主要介绍读取excel表和导出excel表的方法 ...

  8. asp.net使用MVC4框架基于NPOI做导出数据到Excel表

    NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 ...

  9. PHP将数据导出Excel表中(投机型)

    1.简介 如何利用最简单粗糙暴力的方法将数据写入Excel文件中呢? 因为ms word和excel的文档都支持html文本格式,因此我们可以基于这个原理采用html文本格式进行数据的输出. 在htm ...

随机推荐

  1. python 学习笔记十一 SQLALchemy ORM(进阶篇)

    SqlAlchemy ORM SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据A ...

  2. GZFramwork数据库层《前言》DLL项目引用

    新建项目: 1. 项目引入GZFramwork.dll NuGet地址:Install-Package GZFramwork 每个项目都引用 2.BLL层 设置数据库连接维护类:继承于:GZFramw ...

  3. centos7 Nexus maven私有仓库

    cd /home wget http://www.sonatype.org/downloads/nexus-latest-bundle.tar.gz mkdir nexus tar zxvf nexu ...

  4. windows中的程序放在linux上因为字符集不同出错

    问题 在把windows下的一个python脚本挪到linux下的时候,出现了一个奇怪的问题,就是标题那样的报错,很明显,shell没有用对应的python解释器去解释脚本,而是直接用shell解释了 ...

  5. jQuery Easing 使用方法及其图解

    jQuery Easing 使用方法及其图解,非常详尽:http://blog.sina.com.cn/s/blog_70a3539f0102v8az.html

  6. css做三角形

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  7. 字符串与Objec之间互相转换

    字符串与Objec之间互相转换可通过json实现. JSON.parse(str);// 字符串转Json Object JSON.stringify(obj);// Obj转字符串

  8. C/C++ http协议加载sessionID

    很多时候,使用一个既定的API虽然可以去完成一些任务,但是还是不如自己写来的那么随性和自由. http协议,最常用的get,post两种方式传输数据,关于post,有时候,需要用到加载cookie信息 ...

  9. socket编程与利用进程进行多并行连接

    呈现一张基本的socket阻塞式模型,如下图: 一: 对于一对一的进行C/S回射: 服务端(server.c): #include<unistd.h> #include<stdio. ...

  10. [转载]MySQL将DateTime时间类型格式化

    DATE_FORMAT(date,format)  根据format字符串安排date值的格式.   select from_unixtime(time,'%Y-%m-%d %H:%i:%s');   ...