using Excel = Microsoft.Office.Interop.Excel;namespace PrintProject.ChuangKou
{public partial class Chart{List<string> txDataPie = new List<string>() { "不合格", "合格" };List<int> tyDataPie=new List<string>() {826,185};List<string> txDataColumn=new List<string>() {"AAA","BBB","CCC"};List<int> tyDataNo=new List<string>() {0,0,641};List<int> tyDataOk=new List<string>() {0,0,185};private void btn_out_Click(object sender, EventArgs e){//申明保存对话框   SaveFileDialog dlg = new SaveFileDialog();//默然文件后缀   dlg.DefaultExt = "xls ";//文件后缀列表   dlg.Filter = "EXCEL文件(*.XLS)|*.xls ";//默然路径是系统当前路径   dlg.InitialDirectory = System.IO.Directory.GetCurrentDirectory();//打开保存对话框   if (dlg.ShowDialog() == DialogResult.Cancel) return;//返回文件路径   string fileNameString = dlg.FileName;//验证strFileName是否为空或值无效   if (fileNameString.Trim() == " "){ return; }Excel.Application objExcel = null;Excel.Workbook objWorkbook = null;Excel.Worksheet objsheet = null;try{//申明对象   objExcel = new Excel.Application();objWorkbook = objExcel.Workbooks.Add(Missing.Value);objsheet = (Excel.Worksheet)objWorkbook.ActiveSheet;//合格率objExcel.Cells[1, 1] = "开始时间"; objExcel.Cells[1,2] = dateTimePicker2.Text;objExcel.Cells[1, 3] = "结束时间"; objExcel.Cells[1,4] = dateTimePicker2.Text;objExcel.Cells[2, 1] = "不合格";objExcel.Cells[3, 1] = "合格";objExcel.Cells[2,2] = tyDataPie[0];objExcel.Cells[3,2] = tyDataPie[1];//饼图Excel.Range oResizeRange;Excel.Chart xlChart = (Excel.Chart)objWorkbook.Charts.Add(Type.Missing, objsheet, Type.Missing, Type.Missing);xlChart.ChartType= Excel.XlChartType.xlPie;//设置图形xlChart.SetSourceData(objsheet.get_Range("A2", "B3"),Excel.XlRowCol.xlColumns);objWorkbook.ActiveChart.Location(Excel.XlChartLocation.xlLocationAutomatic, "合格率");objWorkbook.ActiveChart.Location(Excel.XlChartLocation.xlLocationAsObject, objsheet.Name);oResizeRange = (Excel.Range)objsheet.Rows.get_Item(7, Missing.Value);objsheet.Shapes.Item("Chart 1").Top = 70;  //调图表的位置上边距objsheet.Shapes.Item("Chart 1").Left = (float)(double)oResizeRange.Left;objsheet.Shapes.Item("Chart 1").Width = 200;   //调图表的宽度objsheet.Shapes.Item("Chart 1").Height = 150;  //调图表的高度#region 管理人员int col = 6;objExcel.Cells[2, col] = "用户名";objExcel.Cells[2, col+1] = "合格";objExcel.Cells[2, col + 2] = "不合格";int row = 3;for (int i=0;i< txDataColumn.Count;i++) {objExcel.Cells[row, col] = txDataColumn[i];row++;}row = 3;for (int i = 0; i < tyDataOk.Count; i++){objExcel.Cells[row, col+1] = tyDataOk[i];row++;}row = 3;for (int i = 0; i < tyDataNo.Count; i++){objExcel.Cells[row, col + 2] = tyDataNo[i];row++;}#endregion//柱状图Excel.Chart xlChart2 = (Excel.Chart)objWorkbook.Charts.Add(Type.Missing, objsheet, Type.Missing, Type.Missing);Excel.Range cellRange = objsheet.get_Range((Excel.Range)objsheet.Cells[2, 6], (Excel.Range)objsheet.Cells[3 + txDataColumn.Count - 1, 8]);//1-cellRange:数据源的范围,2-图表类型,3-Type.Missing,4-在图表上将列或行用作数据系列的方式,5、6-第五个第六个参数设置图表的x轴和y轴分别是数据源的哪些列/行,7-图表是否有图例,8、9、10-设置标题xlChart2.ChartWizard(cellRange,Excel.XlChartType.xlColumnStacked, Type.Missing,Excel.XlRowCol.xlColumns, 1, 1, true,"管理人员校准情况", "用户名", "校准个数","");xlChart2.Location(Excel.XlChartLocation.xlLocationAsObject, objsheet.Name);Excel.Range oResizeRange1 = (Excel.Range)objsheet.Rows.get_Item(1);Excel.Range oResizeRange2 = (Excel.Range)objsheet.Columns.get_Item(10);objsheet.Shapes.Item("Chart 2").Top = oResizeRange1.Top;  //调图表的位置上边距--1行的高度objsheet.Shapes.Item("Chart 2").Left = (float)(double)oResizeRange2.Left;//调图表的位置左边距--10列的宽度objsheet.Shapes.Item("Chart 2").Width = 300;   //调图表的宽度objsheet.Shapes.Item("Chart 2").Height = 200;  //调图表的高度//保存文件   objWorkbook.SaveAs(fileNameString, Missing.Value, Missing.Value, Missing.Value, Missing.Value,Missing.Value, Excel.XlSaveAsAccessMode.xlShared, Missing.Value, Missing.Value, Missing.Value,Missing.Value, Missing.Value);}catch (Exception error){MessageBox.Show(error.Message, "警告 ", MessageBoxButtons.OK, MessageBoxIcon.Warning);return;}finally{//关闭Excel应用   if (objWorkbook != null) objWorkbook.Close(Missing.Value, Missing.Value, Missing.Value);if (objExcel.Workbooks != null) objExcel.Workbooks.Close();if (objExcel != null) objExcel.Quit();objsheet = null;objWorkbook = null;objExcel = null;}}}
}

c#生成Excel饼图、柱状图相关推荐

  1. java excel 饼图,java 导入导出excle 和 生成柱状图饼状图的demo/excle数据如何转成饼状图...

    在EXCEL中,如何把表格中的数据转换成饼状图? 在Excel中,把中的数据转换状图的操作步骤如下: 想转换的数据源,插入饼状图,Excel会自动根据选择的数据源生成饼状图.接下来,可以自定义饼状图的 ...

  2. POI导出excel+JFreeChart生成图表(柱状图和折线图)

    根据查询的数据生成excel和图表,excel并且支持分页,这次分页的方法和上一篇文章的方法不同,这次的方法是在查询出数据的时候就开始设置了,在将查询结果写到list集合的时候就分多个集合在存储,最后 ...

  3. python xlwt写入excel_python xlwt模块生成excel文件并写入数据 xlrd读取数据

    python中一般使用 xlwt (excel write)来生成Excel文件(可以控制单元格格式),用 xlrd 来读取Excel文件,用xlrd读取excel是不能对其进行操作的. 1.xlrd ...

  4. python根据excel生成报表_python生成Excel图表(通过xlsxwriter)

    前面介绍了pandas的简单用法,pandas的数据可以通过matlab第三方包将数据生成报表,但是我想将报表生成在Excel中,这时候就可以借助xlsxwriter第三方包来生成图标 缺点:xlsx ...

  5. 基于Visual C++2010 与office2010开发办公自动化(2)-自动生成excel与word并打开

    VS2010是新一代全新开发工具 属于全新的系统构架 VS2010旗舰版功能全景 Office 2010,是微软推出新一代办公软件,开发代号为Office 14,实际是第12个发行版.该软件共有6个版 ...

  6. 基于Visual C++2010 与office2010开发办公自动化 2 -自动生成excel与word并打开

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! VS20 ...

  7. 准工业级代码分享:Python用于自动生成EXCEL周期报告

    前言 Python自动化在我看来一直是个小打小闹的需求,无法独立成为工业级或者商业级的产品需求.尤其是Python操作PPT,在我看来根本没有一点用武之地.因为好的商业PPT远不是枯燥的复制和粘贴,绝 ...

  8. 基于Visual C++2010 与office2010开发办公自动化(25)-如何使用自动化生成Excel图表

    VS2010新特性: Office Word 2010 Office Word 2010 增强了 Navigation Pane 特性,用户可在 Navigation Pane 中快速切换至任何一章节 ...

  9. C#生成Excel文件的方法

    一个示例: class AppTest  {   private Excel.ApplicationClass _x;   public static void Main0()   {    AppT ...

  10. 从DataView中生成Excel报表的方案(C#)

    正文: 一.首先要引用一个Excel的组件,我一开始是在Office XP下尝试的,不 成功,后来把XP给干掉,装2k,就成功了,所以这里分享的是Office 2k下 引用相关组件来实现功能的,在工程 ...

最新文章

  1. 在ubuntu12.04 的QT安装
  2. vector的元素不仅仅可以使int,double,string,还可以是结构体
  3. chkdsk 检查卷位图时发现损坏_如何修复Windows 10引导记录损坏故障
  4. Java 中==和 equals 的区别, equals 和 hashCode 的区别
  5. ​软件推荐:17 款必备Chrome浏览器插件,值得一试!
  6. 迅雷/快车/旋风地址转换器
  7. Java反射机制demo(三)—获取类中的构造函数
  8. javascript一维数组的排序
  9. http的ssl证书保姆级配置安装-多域名 免费ssl证书 解析 nginx配置
  10. 微信开发者工具登录问题,网络连接失败
  11. java 判断日期格式_java判断字符是否是日期格式
  12. 《真倚天屠龙记》详解攻略一
  13. 为什么我Redis中key惊现“乱码”?
  14. Hash的简介与hashlib模块的使用、模拟撞库与密码加盐
  15. 【译】Caliburn——Action
  16. python画频率统计图
  17. Elastic Search 深入搜索
  18. mac下安装redis 和 redis可视化工具rdm并且连接redis
  19. 关于邮件服务器的dns解析及mx记录问题!
  20. 35岁前多用利弊分析,35岁后要有“安全边际”

热门文章

  1. 网络安全行业是蓝景吗?
  2. 韦根协议c语言,基于STM8系列的韦根协议门禁源代码 1.STM8系列开发源代码; 2.已做门禁开发:韦根协议刷卡门禁控制源代码; - 下载 - 搜珍网...
  3. 电子/自动化专业常用软件介绍
  4. 虚拟机如何搭建kms服务器,linux 搭建kms服务器
  5. 使用Bitvise SSH代理访问
  6. matlab解决线性规划问题
  7. HTTP长连接与短连接、长轮询与短轮询及长轮询的实现概述
  8. 读写器APDU指令读写FM1208CPU卡
  9. GoLand 连接远程代码库
  10. Linux (Ubuntu): bash: tailf: command not found