C# Winform实现导入和导出Excel文件

作者:北辰之北灬 时间:2023-12-10 19:45:30 

本文实例为大家分享了Winform实现导入导出Excel文件的具体代码,供大家参考,具体内容如下


/// <summary>
   /// 导出Excel文件
   /// </summary>
   /// /// <param name="dataSet"></param>
   /// <param name="dataTable">数据集</param>
   /// <param name="isShowExcle">导出后是否打开文件</param>
   /// <returns></returns>
   public static bool DataTableToExcel(string filePath, System.Data.DataTable dataTable, bool isShowExcle)
   {
     //System.Data.DataTable dataTable = dataSet.Tables[0];
     int rowNumber = dataTable.Rows.Count;
     int columnNumber = dataTable.Columns.Count;
     int colIndex = 0;

if (rowNumber == 0)
     {
       return false;
     }

Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
     Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
     Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
     excel.Visible = isShowExcle;
     Microsoft.Office.Interop.Excel.Range range;

foreach (DataColumn col in dataTable.Columns)
     {
       colIndex++;
       excel.Cells[1, colIndex] = col.ColumnName;
     }

object[,] objData = new object[rowNumber, columnNumber];

for (int r = 0; r < rowNumber; r++)
     {
       for (int c = 0; c < columnNumber; c++)
       {
         objData[r, c] =dataTable.Rows[r][c];
       }
     }

range = worksheet.get_Range(excel.Cells[2, 1], excel.Cells[rowNumber + 1, columnNumber]);

range.Value2 = objData;

range.NumberFormatLocal = "@";

worksheet.SaveAs(filePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

//excel.Quit();
     return true;
   }

读取Excel文件数据到DataTable


/// <summary>
   /// 读取Excel文件数据到DataTable
   /// </summary>
   /// <param name="filePath">Excel文件路径</param>
   private void Import_Excel(string filePath)
   {
     string sqlconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";

string sql = @"select * from [Sheet1$]";

try
     {
       using (OleDbConnection conn = new OleDbConnection(sqlconn))
       {
         using (OleDbDataAdapter adapter = new OleDbDataAdapter(sql, conn))
         {
           System.Data.DataTable dt = new System.Data.DataTable();
           adapter.Fill(dt);

this.LoadDataGridView(dt);
         }
       }
     }
     catch (Exception ex)
     {
       MessageBox.Show("打开文件出错,错误信息:" + ex.Message.ToString(), "提示");
     }
   }

来源:https://blog.csdn.net/pp_fzp/article/details/51502233

标签:Winform,导入,导出,Excel
0
投稿

猜你喜欢

  • Java结构型设计模式之享元模式示例详解

    2022-05-16 21:41:10
  • SpringBoot2.0集成WebSocket实现后台向前端推送信息

    2023-08-22 18:50:39
  • C#中异步和多线程的区别介绍

    2021-08-23 07:06:49
  • Java使用ArrayList实现扑克牌的示例代码

    2021-10-29 15:17:17
  • Android Flutter实现GIF动画效果的方法详解

    2023-02-06 02:46:37
  • gradle中的增量构建浅析

    2022-09-23 06:43:13
  • Java深度复制功能与用法实例分析

    2023-07-05 11:23:17
  • Android 自定义输入支付密码的软键盘实例代码

    2021-08-09 11:41:43
  • java并发编程专题(六)----浅析(JUC)Semaphore

    2023-07-27 23:30:28
  • unity将图片转换成字体的方法

    2023-02-16 22:51:09
  • Java 延迟队列的常用的实现方式

    2022-06-30 13:57:00
  • Android实现向Launcher添加快捷方式的方法

    2022-09-14 09:26:41
  • springboot 打包部署 共享依赖包(分布式开发集中式部署微服务)

    2022-12-26 09:13:43
  • ZooKeeper 实现分布式锁的方法示例

    2023-03-20 07:26:43
  • springboot中bean的加载顺序问题

    2022-01-04 19:55:57
  • Java双冒号(::)运算符使用详解

    2022-03-31 11:18:17
  • Java 高并发五:JDK并发包1详细介绍

    2022-11-29 08:56:26
  • 解析Android中webview和js之间的交互

    2023-07-27 17:16:50
  • 轻松学习C#的ArrayList类

    2022-08-07 18:53:34
  • c# DevExpress gridcontrol日期行的显示格式设置

    2022-07-11 05:28:52
  • asp之家 软件编程 m.aspxhome.com