c# 读取与写入Excel的代码

发布时间:2020-06-06编辑:脚本学堂
为大家介绍c#如何读取与写入excel文件的代码,有需要的朋友,可以参考下。

开始之前,作二点说明:
1、excel文件只能存储65535行数据,如果大于这个传值,请首先分割文件。
2、乱码,原因在于字符的设置。

来看二个例子吧,分别是读取excel、写入excel。

一、加载Excel(读取excel内容)返回值是一个DataSet
 

复制代码 代码示例:

  //加载Excel
  public static DataSet LoadDataFromExcel(string filePath)
  {
      try
      {
          string strConn;
          strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
          OleDbConnection OleConn = new OleDbConnection(strConn);
          OleConn.Open();
          String sql = "SELECT * FROM  [Sheet1$]";//可是更改Sheet名称,比如sheet2,等等

          OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
          DataSet OleDsExcle = new DataSet();
          OleDaExcel.Fill(OleDsExcle, "Sheet1");
          OleConn.Close();
          return OleDsExcle;
      }
      catch (Exception err)
      {
          MessageBox.Show("数据绑定Excel失败!失败原因:" + err.Message, "提示信息",
    MessageBoxButtons.OK, MessageBoxIcon.Information);
          return null;
      }
  }

二、写入Excel内容,参数:excelTable是要导入excel的一个table表
 

复制代码 代码示例:

public static bool SaveDataTableToExcel(System.Data.DataTable excelTable, string filePath)
  {
      Microsoft.Office.Interop.Excel.Application app =
          new Microsoft.Office.Interop.Excel.ApplicationClass();
      try
      {
          app.Visible = false;
          Workbook wBook = app.Workbooks.Add(true);
          Worksheet wSheet = wBook.Worksheets[1] as Worksheet;
          if (excelTable.Rows.Count > 0)
          {
    int row = 0;
    row = excelTable.Rows.Count;
    int col = excelTable.Columns.Count;
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            string str = excelTable.Rows[i][j].ToString();
            wSheet.Cells[i + 2, j + 1] = str;
        }
    }
          }

          int size = excelTable.Columns.Count;
          for (int i = 0; i < size; i++)
          {
    wSheet.Cells[1, 1 + i] = excelTable.Columns[i].ColumnName;
          }
          //设置禁止弹出保存和覆盖的询问提示框
          app.DisplayAlerts = false;
          app.AlertBeforeOverwriting = false;
          //保存工作簿
          wBook.Save();
          //保存excel文件
          app.Save(filePath);
          app.SaveWorkspace(filePath);
          app.Quit();
          app = null;
          return true;
      }
      catch (Exception err)
      {
          MessageBox.Show("导出excel出错!错误原因:" + err.Message, "提示信息",
    MessageBoxButtons.OK, MessageBoxIcon.Information);
          return false;
      }
      finally
      {
      }
  }