• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > c#读写excel文件使用示例

c#读写excel文件使用示例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#示例,c#程序示例,excel表格示例,excel表格示例图,excel函数示例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

因为支持csv,所以就一块写上了
Workbook,Worksheet using Aspose.Cells(第三方)

把Excel读取到属性对象列表,需要传入对象类型和文件路径.
例:
List<PropSetCurrency> currencyList = this.GetObjectList<PropSetCurrency>(filePath);
注:Excel的表头需要和对象名对应(可无序),且第一列不能为空


把属性对象列表保存到Excel,需要传入对象列表和保存的文件完整路径.
例:
this.SetExcelList(currencyList,"c://currencyList.excel");


    Type type = typeof(T);
    Workbook workbook = new Workbook(filePath);
    Worksheet sheet = workbook.Worksheets[0];

    // 获取标题列表
    var titleDic = this.GetTitleDic(sheet);

    // 循环每行数据
    for (int i = 1; i < int.MaxValue; i++)
    {
// 行为空时结束
if (string.IsNullOrEmpty(sheet.Cells[i, 0].StringValue))
{
    break;
}

T instance = new T();

// 循环赋值每个属性
foreach (var item in type.GetProperties())
{
    if (titleDic.ContainsKey(item.Name))
    {
string str = sheet.Cells[i, titleDic[item.Name]].StringValue;
if (!string.IsNullOrEmpty(str))
{
    try
    {
// 根据类型进行转换赋值
if (item.PropertyType == typeof(string))
{
    item.SetValue(instance, str);
}
else if (item.PropertyType.IsEnum)
{
    item.SetValue(instance, int.Parse(str));
}
else
{
    MethodInfo method = item.PropertyType.GetMethod("Parse", new Type[] { typeof(string) });
    object obj = null;
    if (method != null)
    {
obj = method.Invoke(null, new object[] { str });
item.SetValue(instance, obj);
    }
}
    }
    catch (Exception)
    {
// 获取错误
    }
}
    }
}

list.Add(instance);
    }

    return list;
}

/// <summary>
/// 把对象List保存到Excel
/// </summary>
/// <typeparam name="T">对象</typeparam>
/// <param name="objList">对象列表</param>
/// <param name="saveFilePath">保存文件的完整路径,包括文件类型</param>
public void SetExcelList<T>(List<T> objList, string saveFilePath)
{
    if (!saveFilePath.Trim().EndsWith("csv") && !saveFilePath.Trim().EndsWith("xlsx"))
    {
return;
    }

    Workbook workbook = new Workbook();
    Worksheet sheet = workbook.Worksheets[0];

    // 冻结第一行
    sheet.FreezePanes(1, 1, 1, 0);

    // 循环插入每行
    int row = 0;
    foreach (var obj in objList)
    {
int column = 0;
var properties = obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.DeclaredOnly);
if (row == 0)
{
    foreach (var titName in properties)
    {
sheet.Cells[0, column].PutValue(titName.Name);
column++;
    }

    row++;
}

// 循环插入当前行的每列
column = 0;
foreach (var property in properties)
{
    var itemValue = property.GetValue(obj);
    sheet.Cells[row, column].PutValue(itemValue.ToString());
    column++;
}

row++;
    }

    workbook.Save(saveFilePath);
}

/// <summary>
/// 获取标题行数据
/// </summary>
/// <param name="sheet">sheet</param>
/// <returns>标题行数据</returns>
private Dictionary<string, int> GetTitleDic(Worksheet sheet)
{
    Dictionary<string, int> titList = new Dictionary<string, int>();
    for (int i = 0; i < int.MaxValue; i++)
    {
if (sheet.Cells[0, i].StringValue == string.Empty)
{
    return titList;
}

titList.Add(sheet.Cells[0, i].StringValue, i);
    }

    return titList;
}
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • c#中合并excel表格的方法示例
  • C#裁剪,缩放,清晰度,水印处理操作示例
  • C#获取HTML文本的第一张图片与截取内容摘要示例代码
  • C#实现创建桌面快捷方式与添加网页到收藏夹的示例
  • C#实现的微信网页授权操作逻辑封装示例
  • C#代码实现短信验证码接口示例
  • C#信号量用法简单示例
  • C#实现冒泡排序算法的代码示例
  • C#微信公众号与订阅号接口开发示例代码
  • C#中使用基数排序算法对字符串进行排序的示例

相关文章

  • 2017-05-28用NPOI创建Excel、合并单元格、设置单元格样式、边框的方法
  • 2017-05-28c#:CTS类型系统
  • 2017-05-28C#实现带进度条的ListView
  • 2017-05-28C#实现WebSocket协议客户端和服务器websocket sharp组件实例解析
  • 2017-05-28C#虚函数用法实例分析
  • 2017-05-28C#中TreeView节点的自定义绘制方法
  • 2017-05-28C#显示文件夹下所有图片文件的方法
  • 2017-05-28C#判断一个字符串是否包含另一个字符串的方法
  • 2017-05-28C# String Replace高效的实例方法
  • 2017-05-28一个可逆加密的类(使用3DES加密)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#编写ActiveX网页截图控件
    • c#中var关键字用法浅谈
    • C#实现洗牌游戏实例
    • C#控制IE进程关闭和缓存清理的实现代码
    • 在Unity中实现动画的正反播放代码
    • c#使用DotNetZip封装类操作zip文件(创建/读取/更新)实例
    • C# Hook钩子实例代码 截取键盘输入
    • .net使用Aspose.Words进行Word替换操作的实现代码
    • .Net WInform开发笔记(三)谈谈自制控件(自定义控件)
    • C#使用默认浏览器打开网页的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有