/**//// <summary>
/// 导出到 Excel 文件
/// </summary>
/// <param name="fileName">含完整路径</param>
/// <param name="dataTable">含字段标题名</param>
public void ExpExcel(string fileName ,DataTable dataTable)
{
    Excel.ApplicationClass apc =new Excel.ApplicationClass();

    apc.Visible = false ;
    Excel.Workbook wkbook = apc.Workbooks.Add( true ) ;
    Excel.Worksheet wksheet = (Excel.Worksheet)wkbook.ActiveSheet;

    int rowIndex = 2;
    int colIndex = 1;

    wksheet.get_Range(apc.Cells[1,1],apc.Cells[dataTable.Rows.Count,dataTable.Columns.Count]).NumberFormat = "@";

    //取得列标题
    foreach (DataColumn dc in dataTable.Columns)
    {
        colIndex ++;
        wksheet.Cells[1,colIndex] = dc.ColumnName;
    }

    //取得表格中数据
    foreach (DataRow dr in dataTable.Rows)
    {
        colIndex = 1;
        foreach (DataColumn dc in dataTable.Columns)
        {
            if(dc.DataType == System.Type.GetType("System.DateTime"))
            {
                apc.Cells[rowIndex,colIndex] = "'"+(Convert.ToDateTime(dr[dc.ColumnName].ToString())).ToString("yyyy-MM-dd");
            }
            else
                if(dc.DataType == System.Type.GetType("System.String"))
            {
                apc.Cells[rowIndex,colIndex] = "'"+dr[dc.ColumnName].ToString();
            }
            else
            {
                apc.Cells[rowIndex,colIndex] = "'"+dr[dc.ColumnName].ToString();
            }

            wksheet.get_Range(apc.Cells[rowIndex,colIndex],apc.Cells[rowIndex,colIndex]).HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft;

            colIndex++;
        }
        rowIndex++;
    }
    
    //设置表格样式
    wksheet.get_Range(apc.Cells[1,1],apc.Cells[1,dataTable.Columns.Count]).Interior.ColorIndex = 20; 
    wksheet.get_Range(apc.Cells[1,1],apc.Cells[1,dataTable.Columns.Count]).Font.ColorIndex = 3;
    wksheet.get_Range(apc.Cells[1,1],apc.Cells[1,dataTable.Columns.Count]).Borders.Weight = Excel.XlBorderWeight.xlThin;
    wksheet.get_Range(apc.Cells[1,1],apc.Cells[dataTable.Rows.Count,dataTable.Columns.Count]).Columns.AutoFit();

    if(File.Exists(fileName))
    {
        File.Delete(fileName);
    }

    wkbook.SaveAs( fileName ,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange ,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing);
   
    wkbook.Close(Type.Missing,Type.Missing,Type.Missing);
    apc.Quit();
    wkbook = null;
    apc = null;
    GC.Collect();
}
/**//// <summary>
/// 从Excel导入帐户(逐单元格读取)
/// </summary>
/// <param name="fileName">完整路径名</param>
public IList ImpExcel(string fileName)
{
    IList alExcel = new ArrayList();
    UserInfo userInfo = new UserInfo();

    Excel.Application app;
    Excel.Workbooks wbs;
    Excel.Worksheet ws;

    app = new Excel.Application();
    wbs = app.Workbooks;
    wbs.Add(fileName);
    ws= (Excel.Worksheet)app.Worksheets.get_Item(1);
    int a = ws.Rows.Count;
    int b = ws.Columns.Count;
    
    for ( int i = 2; i < 4; i++)
    {
        for ( int j = 1; j < 21; j++)
        {
            Excel.Range range = ws.get_Range(app.Cells[i,j],app.Cells[i,j]);
            range.Select();
            alExcel.Add( app.ActiveCell.Text.ToString() );
        }
    }

    return alExcel;
}


/**//// <summary>
/// 从Excel导入帐户(新建oleDb连接,Excel整表读取,适于无合并单元格时)
/// </summary>
/// <param name="fileName">完整路径名</param>
/// <returns></returns>
public DataTable ImpExcelDt (string fileName)
{
    string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + fileName + ";Extended Properties=Excel 8.0" ;
    OleDbConnection myConn = new OleDbConnection ( strCon ) ;
    string strCom = " SELECT * FROM [Sheet1$] " ;
    myConn.Open ( ) ;
    OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ;
    DataSet myDataSet = new DataSet ( ) ;
    myCommand.Fill ( myDataSet , "[Sheet1$]" ) ;
    myConn.Close ( ) ;

    DataTable dtUsers = myDataSet.Tables[0];

    return dtUsers;
}


dataGrid中显示:
DataGrid1.DataMember= "[Sheet1$]" ;
DataGrid1.DataSource = myDataSet ;

转载于:https://www.cnblogs.com/liuzhixian/articles/851983.html

c#中Excel数据的导入、导出相关推荐

  1. 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作

    随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...

  2. VB中Excel 2010的导入导出操作

    VB中Excel 2010的导入导出操作 编写人:左丘文 2015-4-11 近来这已是第二篇在讨论VB的相关问题,今天在这里,我想与大家一起分享一下在VB中如何从Excel中导入数据和导出数据到Ex ...

  3. docker导入MySQL文件_Docker容器中Mysql数据的导入/导出详解

    前言 Mysql数据的导入导出我们都知道一个mysqldump命令就能够解决,但如果是运行在docker环境下的mysql呢? 解决办法其实还是用mysqldump命令,但是我们需要进入docker的 ...

  4. C#实现EXCEL数据的导入导出

    用户经常会有这种需求,可以将excel中的数据自动导入到数据库,而不用费时费力地手动添加,或者将某些数据导出存放到excel表格中. 一.excel导入 实现思路:先将excel文件上传到服务器(文件 ...

  5. mysql数据库中excel数据的导入与导出

    mysql数据库数据与excel数据在python大数据中是比较常见的 在导入导出之前必须先配置好路径权限 1.查看导入导出限制路径 # 查看路径 SHOW VARIABLES LIKE '%secu ...

  6. Python实现Excel与Word文件中表格数据的导入导出

    封面图片:<Python程序设计实验指导书>(ISBN:9787302525790),董付国,清华大学出版社 图书详情(京东): ============= 问题描述:Excel文件&qu ...

  7. PHP利用phpExcel实现Excel数据的导入导出

    phpExcel包的下载地址:http://download.csdn.net/detail/kesixin/9920920 首先先说一下,这段例程是使用在Thinkphp的开发框架上,要是使用在其他 ...

  8. C#winform中操作Excel数据,导入导出功能

    命名空间 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; us ...

  9. easyexcel导入时读不到数据_SpringBoot中EasyExcel实现Excel文件的导入导出

    前言 在我们日常的开发过程中经常会使用Excel文件的形式来批量地上传下载系统数据,我们最常用的工具是Apache poi,但是如果数据到底上百万时,将会造成内存溢出的问题,那么我们怎么去实现百万数据 ...

最新文章

  1. [转]Python 命令行参数和getopt模块详解
  2. 任天堂经典拳击游戏可以体感操作了,打开网页就能玩,击败泰森不是梦
  3. 关于卡特兰数及典型例题
  4. SQL Server2005重装Performance Monitor Counter 的问题解决
  5. sql server 2005 T-SQL @@TRANCOUNT (Transact-SQL)
  6. TensorLayer MNIST
  7. angularjs1-5,class,
  8. LeetCode 417. 太平洋大西洋水流问题(BFS/DFS)
  9. 访问 JSON 对象的值
  10. 怎样搭建本地svn服务器环境-轻松掌握版本管理
  11. c语言如何制作多线程序,c语言中如何创建多线程。最好有一个例子,谢谢!!...
  12. 《推荐系统笔记(八)》GBDT和XgBoost的原理(内含详细数学推导)
  13. Android SwipeRefreshLayout 实现下拉刷新1
  14. 【LeetCode】【字符串】题号:*125. 验证回文串
  15. 完美数简介及算法分析
  16. 第22节项目6-定期存款利息计算器
  17. 红米k50至尊版参数 红米k50至尊版评测值得买吗
  18. 快速排序算法quickSort
  19. 符号函数sign(x)
  20. 3个老鼠确定8个瓶子哪瓶有毒

热门文章

  1. alot英文怎么读_【乐学】“原来如此”用英文怎么说?
  2. php 异常错误信息用处,关于PHP中异常错误的处理详细介绍
  3. 大学计算机二级培训蹭课,本人在复旦大学蹭课总结的一点小小的经验
  4. java二分查找递归_java学习之—递归实现二分查找法
  5. 获取该字符串第N次出现的位置
  6. 公司创始人、董事长、CEO和总裁谁更大,有什么区别?
  7. mysql 安装测试ok_tpcc-mysql安装测试与使用的实例教程
  8. 类的6个默认成员函数:构造函数、析构函数、拷贝构造函数、重载运算符、三/五法则
  9. Python之数据重塑——【stack()方法和unstack()方法、pivot()方法】
  10. VIM使用系列之一——配置VIM下编程和代码阅读环境