导出带图形的数据excel表

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);
}
}

  

时间: 2024-11-05 21:30:41

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

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

在数据库初始阶段,我们有些数据在EXCEL中做好之后,需要将EXCEL对应列名(导入后对应数据库表的字段名),对应sheet(改名为导入数据库之后的表名)导入指定数据库, 相当于导入一张表的整个数据.导入之前需要检查是否存在同名的表,导入的数据表以"$"结尾就是为了避免表重复,以作区分.下面就来看看具体操作步骤. 1 打开SQL Server Management Studio,按图中的路径进入导入数据界面. 2 导入的时候需要将EXCEL的文件准备好,不能打开.点击下一步. 数据源:

sql处理带逗号的数据

这篇博客宗旨在于处理如何使用sql把带逗号的数据转换为表中的行以及将表中的行拼接成用逗号组成的数据. 具体代码如下功能写在注释里 --将有逗号的数据转换为一个表存储id加数据 GO DECLARE @Text VARCHAR(200) SET @Text = 'test1,test2' DECLARE @xml XML SET @xml = CONVERT(XML,'<a>'+ REPLACE(@Text,',','</a><a>')+'</a>') CRE

.Net中DataGridview数据如何导出到excel表

首先,这个问题在网上有很多答案,也有很多解决的方法.其次,很多人写过类似的博客 .我的这篇博客,主要是写给那些刚刚接触或接触不久.NET并使用其做程序的人,更是写个自己,记录一下方法,方便以后使用. 在窗体中添加一个DataGridView控件,DatagridView获得数据: DataGridView1.DataSource = crList(泛型)或DataGridView1.DataSource=DataSet.Table(0).{注意:通过查询数据库,将查询到的数据放入crList或D

thinkphp导入导出excel表单数据

在PHP项目经常要导入导出Excel表单. 先去下载PHPExcel类库文件,放到相应位置. 我在thinkphp框架中的位置为ThinkPHP/Library/Org/Util/ 导入 在页面上传excel文件提交到后台,利用form表单提单即可 <form method="post" enctype="multipart/form-data" action="" > <input type="submit"

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

NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写.NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作.使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写.NPOI是构建在POI 3.x版本

导出带下拉框的Excel(数据超出长度解决方案)

  注意:此文档中标注的行号和列号都是下标,从0开始 //下载模板 protected void btnDownLoad_ServerClick(object sender,EventArgs e) { //生成Excel模板 CreateExcelTemp(); //设置想要打开的模板路径  string path = this.MapPath("~/BaseInfo/Temp/GABProdectInfoMaintain.xls"); //将此模板打开或重新保存 ExcelOutE

JavaWeb中将数据从数据库导出到Excel表的实例

首先声明此博客基于 http://blog.csdn.net/evangel_z/article/details/7332535 https://github.com/T5750/poi(原著博客中介绍的程序源码) 这个博客里面开发的项目,使用POI导出Excel,经过修改支持文件弹窗选择,在使用中包括以下几步. 1.添加jar包 在刚才的github的项目里可以下载到. 2.添加ExportExcel类 package com.sx2.utils; import java.io.IOExcep

利用数据库管理工具(Navicat)导出数据到Excel表中

如果只是想把数据库表中数据简单导出来,可以利用数据库管理工具中的工具 1.先查询 2.在查询出结果中全选 3.导出向导 4.选择Excel 5.选择导出地址并命名 原文地址:https://www.cnblogs.com/sanhao/p/9789232.html

java写excel表的数据导出

// POI中的api                // 创建工作簿                HSSFWorkbook wb = new HSSFWorkbook(); // 创建工作表,就是一workSheet                HSSFSheet sheet = wb.createSheet("汽车列表");                // 创建首行,索引从0开始                HSSFRow firstRow = sheet.createR