none
c# 根据excel中的源数据 生成查询条件 结果集 RRS feed

  • 问题

  • 在excel的一个sheet表中已经提供了一批源数据,我想做一个程序,通过向程序中导入源数据可以在另一个sheet表中生成如图的查询条件和结果集,当选择查询条件的时候,结果集会发生改变,而且可以根据这些结果动态生成柱状、折线、饼状图,查询条件、结果集、统计图都在一个sheet表中,哪位大虾有相关的资料啊,希望指点小弟一二。
    2014年10月22日 3:12

答案

  • 你好:

    请问你这个是哪个版本的office? 你的意思是通过C#代码来自动化点击"全部"或者"区间"按钮的动作是吗?

    点击(全部)下拉列表框弹出来的过滤窗口是自定义的form吗?看起来不太像是自动过滤的窗口。你可以通过Microsoft.Office.Interop.Excel命名空间来自动化Excel文件的操作,这个命名空间提供了所有你需要用到的Excel对象模型中的对象,通过这些对象可以实现你手动操作的几乎所有常用的功能。建议你仔细阅读一下这两篇文章,详细介绍了Excel的对象模型和基本的Excel自动化的方法:

    Excel 对象模型概述

    如何在 Microsoft Visual C# .NET 中实现 Microsoft Excel 自动化


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年10月23日 2:32
    版主

全部回复

  • 提供一个思路给你,首先你的一个excel的sheet作为数据源,这个可以让程序读取并加载到内存中,可以以datatable 或者list存储,excel中的所有的列,你可以加载作为筛选条件,这个在你写的应用程序中可以自动根据加载的数据来生成查询界面,查询完成后导出结果集,这个时候可以把这些过滤后的数据写入到另外一个sheet中。

    注意,读完前一个sheet后要释放掉整个excel。想要生成报表图形,可以在程序中调用excel的接口来做,数据源就是你查询过滤后的数据。   

    这里提供的是一个思路,至于如何读取excel,如何导出excel,如何用excel将数据源导出各种报表,这些网上都可以找到相关的资料。

    2014年10月22日 14:48
  • 您所看到两幅图都是在excel中的,两幅图都是导出后excel中sheet的样子,“区间价格”和“全部”都是excel中的单元格,点击“全部”按钮的时候会出现第一幅图所示的选择效果(这个直接在excel中可以做成这种效果,现在想用代码实现),选择某个选项,第二幅图的数据集会发生改变。现在主要不知道怎么用代码操作excel实现这样的效果。
    2014年10月23日 1:25
  • 你好:

    请问你这个是哪个版本的office? 你的意思是通过C#代码来自动化点击"全部"或者"区间"按钮的动作是吗?

    点击(全部)下拉列表框弹出来的过滤窗口是自定义的form吗?看起来不太像是自动过滤的窗口。你可以通过Microsoft.Office.Interop.Excel命名空间来自动化Excel文件的操作,这个命名空间提供了所有你需要用到的Excel对象模型中的对象,通过这些对象可以实现你手动操作的几乎所有常用的功能。建议你仔细阅读一下这两篇文章,详细介绍了Excel的对象模型和基本的Excel自动化的方法:

    Excel 对象模型概述

    如何在 Microsoft Visual C# .NET 中实现 Microsoft Excel 自动化


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年10月23日 2:32
    版主
  • 先谢谢您提供的资料。

    我是想用程序生成的excel文件中,点击“全部”这个单元格,会出现图1的过滤条件,选择图1的过滤条件,图2的过结果集会发生相应的变化,图1和图2在一张sheet表中。我想做这样的功能主要有两个难点,第一就是,在点击单元格的时候,怎么出现图1的过滤条件,第二就是,怎么让选择条件和结果集联动起来,选择条件的时候结果集会跟着变化。这样描述不知道您是否明白了我的意思。

    2014年10月23日 9:19
  • 你的意思是通过编程的方式来自动化这个操作是吧?我不太清楚那个弹出来的过滤窗口是什么窗口,一般的过滤窗口是这样的,跟你的贴图1中的窗口有点区别:

    你可以将你的Excel文件共享出来吗?或者做一个示例Excel共享出来也可以。另外通过C#来实现Excel自动化的话还是要通过Excel PIA,你对这方面有了解过吗?我的上一个回复里面的两个文档可以帮助你了解基本的自动化的方法。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2014年10月23日 9:50
    版主
  • 这么久才回复您,真抱歉。应该就是您说的自动化的问题,您贴的图可能是07版本以上的excel的功能,我贴的图是03版本的功能,界面不太一样。点击sheet表中某个单元格出现您贴的图片那个效果,属于Excel PIA的内容吧?
    2014年10月27日 5:40
  • Office 2003微软已经不提供支持了,建议你升级Office软件。基本上Excel中所有的操作通过PIA都可以来实现,所以我还是建议你看一下我上面回复里面的那两个链接。或者你自己在网络上搜索一些相关资料系统学习一下。你也可以做一个示例Excel文件上传到OneDrive中并共享出来,我可以抽时间给你做一个示例代码,实现你这个功能。

    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年10月28日 5:56
    版主