C# 在excel表格中检索并导出数据
2015-12-15 16:08
591 查看
由于工作需要,我经常使用excel文档来存储和处理各种数据,在生活中偶尔也会使用excel表格来记录各种开销,相信很多朋友也和我一样。Excel的功能很强大,其中一个很实用的数据处理功能就是查找和替换,它让我们可以很方便的找到表格中的数据。但我发现excel并不能直接将这些查找到的数据导出。设想我有一个excel文档,里面存放了学校的老师、学生和工人的一些信息,我想将这个文档中所有老师的信息全部检索出来,并提取到一个新的excel文档里面,如何实现?如果文件不大的话,可以逐行copy,可如果文件很大,这个方法就不行了,费时费力。经过一番研究,于是有了这篇文章。下面就来看看怎样使用C#编程的方法,将一个excel工作表中的数据检索并提取到一个新的excel文档里。
在这里我使用了一个免费的Excel API-Spire.XLS. 有需要的朋友可以下载使用。
这是原excel文件截图:
详细步骤和代码片段如下:
安装Spire.XLS后,新建一个项目,并添加Bin文件夹下的dll文件作为项目的引用。这里要注意选择和你项目的.NET Framework版本一致的dll文件(如您项目的.NET Framework版本是4.0,则选择.NET 4.0文件夹下的dll文件 )。
步骤1:新建一个workbook对象并获取第一个worksheet。
步骤2:新建一个workbook对象并加载excel文件。
步骤3:获取你想要检索并从中提取数据的worksheet。在此示例中是第一个worksheet。
步骤4:检索数据并导出至步骤1新建的excel文档的worksheet里。
步骤5:保存文件。
效果图:
全部代码:
在这里我使用了一个免费的Excel API-Spire.XLS. 有需要的朋友可以下载使用。
这是原excel文件截图:
详细步骤和代码片段如下:
安装Spire.XLS后,新建一个项目,并添加Bin文件夹下的dll文件作为项目的引用。这里要注意选择和你项目的.NET Framework版本一致的dll文件(如您项目的.NET Framework版本是4.0,则选择.NET 4.0文件夹下的dll文件 )。
步骤1:新建一个workbook对象并获取第一个worksheet。
Workbook newBook = new Workbook(); Worksheet newSheet = newBook.Worksheets[0];
步骤2:新建一个workbook对象并加载excel文件。
Workbook workbook = new Workbook(); workbook.LoadFromFile("信息.xlsx");
步骤3:获取你想要检索并从中提取数据的worksheet。在此示例中是第一个worksheet。
Worksheet sheet = workbook.Worksheets[0];
步骤4:检索数据并导出至步骤1新建的excel文档的worksheet里。
int i = 1; int columnCount = sheet.Columns.Count(); foreach (CellRange range in sheet.Columns[0]) { if (range.Text == "老师") { CellRange sourceRange = sheet.Range[range.Row, 1, range.Row, columnCount]; CellRange destRange = newSheet.Range[i, 1, i, columnCount]; sheet.Copy(sourceRange, destRange, true); i++; } }
步骤5:保存文件。
newBook.SaveToFile("信息-老师.xlsx", ExcelVersion.Version2010);
效果图:
全部代码:
using System.Linq;
using Spire.Xls;
namespace Retrieve_and_extract_data
{
class Program
{
static void Main(string[] args)
{
Workbook newBook = new Workbook(); Worksheet newSheet = newBook.Worksheets[0];
Workbook workbook = new Workbook(); workbook.LoadFromFile("信息.xlsx");
Worksheet sheet = workbook.Worksheets[0];
int i = 1; int columnCount = sheet.Columns.Count(); foreach (CellRange range in sheet.Columns[0]) { if (range.Text == "老师") { CellRange sourceRange = sheet.Range[range.Row, 1, range.Row, columnCount]; CellRange destRange = newSheet.Range[i, 1, i, columnCount]; sheet.Copy(sourceRange, destRange, true); i++; } }
newBook.SaveToFile("信息-老师.xlsx", ExcelVersion.Version2010);
}
}
}
相关文章推荐
- 使用Python生成Excel格式的图片
- c#调用COM组件
- Excel 曝出 Power Query 安全漏洞,1.2 亿用户易受远程 DDE 攻击
- VBA将excel数据表生成JSON文件
- excel vba 限制工作表的滚动区域代码
- excel vba 高亮显示当前行代码
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- C#中this的用法集锦
- C#数据结构之顺序表(SeqList)实例详解
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- C#实现AddRange为数组添加多个元素的方法