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. poj 1091 跳蚤

    跳蚤 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8482   Accepted: 2514 Description Z城 ...

  2. Flowplayer-JavaScript API

    source url: https://flowplayer.org/docs/api.html Global API access Use the flowplayer function to ge ...

  3. [问题2014S09] 解答

    [问题2014S09]  解答 充分性:  先证明对 Jordan 块 \(J_r(1)\) 以及任意的正整数 \(m\), 均有 \(J_r(1)^m\) 相似于 \(J_r(1)\). 设 \(N ...

  4. C# 蓝牙编程

    C#进行蓝牙编程 本节我们给大家用源码的形式给大家介绍如何用C#调用蓝牙.下面的源码是基于destop的C#调用蓝牙的程序,也就是使用普通版本的.NET Framework来调用编程,一般是有蓝牙的笔 ...

  5. Query Designer中的特征限制(Characteristic Restrictions)、缺省值(Default Values)、自由特性(Free Characteristics)

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. python中的@

    一.函数修饰符 '@' 用做函数的修饰符,可以在模块或者类的定义层内对函数进行修饰, 出现在函数定义的前一行,不允许和函数定义在同一行 一个修饰符就是一个函数,它将被修饰的函数作为参数,并返回修饰后的 ...

  7. STL中的查找算法

    STL中有很多算法,这些算法可以用到一个或多个STL容器(因为STL的一个设计思想是将算法和容器进行分离),也可以用到非容器序列比如数组中.众多算法中,查找算法是应用最为普遍的一类. 单个元素查找 1 ...

  8. location.hash的摘抄

    location.hash详解 去年9月,twitter改版. 一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为 http://twitter.com/us ...

  9. Android Gradle的使用

    说明: 在Android Studio中的Terminal可以直接使用Gradle命令行,不需要配置环境,而想直接在电脑的命令行使用Gradle命令行, 则需要配置环境,Window下配置Gradle ...

  10. POSIX信号

    POSIX 表示可移植操作系统接口(Portable Operating System Interface ,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEE ...