C#操作Excel文件三种方式

这篇具有很好参考价值的文章主要介绍了C#操作Excel文件三种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C#操作Excel文件三种方式
彭世瑜2021-07-12 16:14:28
文章标签C/C++文章分类C/C++后端开发阅读数5317

.Net平台上对Excel进行操作主要有两种方式。第一种,把Excel文件看成一个数据库,通过OleDb的方式进行读取与操作;第二种,调用Excel的COM组件。两种方式各有特点。

注意一些简单的问题1.excel文件只能存储65535行数据,如果你的数据大于65535行,那么就需要将excel分割存放了。2.关于乱码,这主要是字符设置问题。

一、OleDb方式

读取Excel文件
C#操作Excel文件三种方式_C/C++
1 //加载Excel
2 public static DataSet LoadDataFromExcel(string filePath)
3 {
4 try
5 {
6 string strConn;
7 strConn = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + filePath + “;Extended Properties=‘Excel 8.0;HDR=False;IMEX=1’”;
8 OleDbConnection OleConn = new OleDbConnection(strConn);
9 OleConn.Open();
10 String sql = “SELECT * FROM [Sheet1$]”;//可是更改Sheet名称,比如sheet2,等等
11
12 OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
13 DataSet OleDsExcle = new DataSet();
14 OleDaExcel.Fill(OleDsExcle, “Sheet1”);
15 OleConn.Close();
16 return OleDsExcle;
17 }
18 catch (Exception err)
19 {
20 MessageBox.Show(“数据绑定Excel失败!失败原因:” + err.Message, “提示信息”,
21 MessageBoxButtons.OK, MessageBoxIcon.Information);
22 return null;
23 }
24 }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
C#操作Excel文件三种方式_C/C++
访问.xls的文件使用的是“Microsoft.Jet.OLEDB.4.0”,访问.xlsx的文件使用的是“Microsoft.Ace.OleDb.12.0”

写入excel文件
C#操作Excel文件三种方式_C/C++
1 ///
2 /// 写入Excel文档
3 ///
4 public bool SaveFP2toExcel(string filePathath)
5 {
6 try
7 {
8 string strConn = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=”+ filePathath +“;Extended Properties=Excel 8.0;”;
9 OleDbConnection conn = new OleDbConnection(strConn);
10 conn.Open();
11 System.Data.OleDb.OleDbCommand cmd=new OleDbCommand ();
12 cmd.Connection =conn;
13
14 for(int i=0;i0].RowCount -1;i++)
15 {
16 if(fp2.Sheets [0].Cells[i,0].Text!=“”)
17 {
18 cmd.CommandText =“INSERT INTO [sheet1$] (工号,姓名,部门,职务,日期,时间) VALUES('”+fp2.Sheets [0].Cells[i,0].Text+ “‘,’”+
19 fp2.Sheets [0].Cells[i,1].Text+“‘,’”+fp2.Sheets [0].Cells[i,2].Text+“‘,’”+fp2.Sheets [0].Cells[i,3].Text+
20 “‘,’”+fp2.Sheets [0].Cells[i,4].Text+“‘,’”+fp2.Sheets [0].Cells[i,5].Text+“')”;
21 cmd.ExecuteNonQuery ();
22 }
23 }
24
25 conn.Close ();
26 return true;
27 }
28 catch(System.Data.OleDb.OleDbException ex)
29 {
30 Console.WriteLine (“写入Excel发生错误:”+ex.Message );
31 return false;
32 }
33 }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
C#操作Excel文件三种方式_C/C++

二、Excel COM组件

一个.NET组件事实上是一个.NET下的DLL,它包含的不仅是运行程序本身,更重要的是包含这个DLL的描述信息(Meta Data,即元数据),而一个COM组件是用其类库(TLB)储存其描述信息。这些COM组件都是非受管代码,要在Visual C#中使用这些非受管代码的COM组件,就必须把他们转换成受管代码的.NET组件。所以在用Visual C#调用Excel表格之前,必须完成从COM组件的非受管代码到受管代码的类库的转换。

添加COM组件

Create an Automation Client for Microsoft Excel
Start Microsoft Visual Studio .NET.
On the File menu, click New, and then click Project. Select Windows Application from the Visual C# Project types. Form1 is created by default.
Add a reference to the Microsoft Excel Object Library. To do this, follow these steps:
On the Project menu, click Add Reference.
On the COM tab, locate Microsoft Excel Object Library, and click Select.
Click OK in the Add References dialog box to accept your selections. If you are prompted to generate wrappers for the libraries that you selected, click Yes.
using Excel = Microsoft.Office.Interop.Excel;
读取Excel文件
C#操作Excel文件三种方式_C/C++
1 private void button1_Click(object sender, EventArgs e)
2 {
3 Excel.Application xlApp ;
4 Excel.Workbook xlWorkBook ;
5 Excel.Worksheet xlWorkSheet ;
6 Excel.Range range ;
7
8 string str;
9 int rCnt = 0;
10 int cCnt = 0;
11
12 xlApp = new Excel.Application();
13 xlWorkBook = xlApp.Workbooks.Open(“csharp.net-informations.xls”);
14 xlWorkSheet = xlWorkBook.Sheets[“Sheet1”];
15
16 range = xlWorkSheet.UsedRange;
17
18 for (rCnt = 1; rCnt <= range.Rows.Count; rCnt++)
19 {
20 for (cCnt = 1; cCnt <= range.Columns.Count; cCnt++)
21 {
22 str = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value2 ;
23 MessageBox.Show(str);
24 }
25 }
26
27 xlWorkBook.Close(true, null, null);
28 xlApp.Quit();
29 }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
C#操作Excel文件三种方式_C/C++
写入Excel文件
C#操作Excel文件三种方式_C/C++
1 private void button1_Click(object sender, EventArgs e)
2 {
3 Excel.Application xlApp ;
4 Excel.Workbook xlWorkBook ;
5 Excel.Worksheet xlWorkSheet ;
6 object misValue = System.Reflection.Missing.Value;
7
8 xlApp = new Excel.Application();
9 xlWorkBook = xlApp.Workbooks.Add(misValue);
10 xlWorkSheet = xlWorkBook.Sheets[“Sheet1”];
11
12 //add some text
13 xlWorkSheet.Cells[1, 1] = “http://csharp.net-informations.com”;
14 xlWorkSheet.Cells[2, 1] = “Adding picture in Excel File”;
15
16 xlWorkBook.SaveAs(“csharp.net-informations.xls”, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
17 xlWorkBook.Close(true, misValue, misValue);
18 xlApp.Quit();
19
20 MessageBox.Show (“File created !”);
21 }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
C#操作Excel文件三种方式_C/C++

主要参考:http://csharp.net-informations.com/excel/files/download/csharp-open-excel_download.htm

三、第三方插件-NPOI

摘要: NPOI,顾名思义,就是POI的.NET版本。那POI又是什么呢?POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office 97-2003的文件,支持的文件格式包括xls, doc, ppt等。在本文发布时,NPOI的最新版本是2.2.1。

NPOI网址   http://npoi.codeplex.com/文章来源地址https://www.toymoban.com/news/detail-611091.html


到了这里,关于C#操作Excel文件三种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#实现将excel转换成pdf的三种方法

    本人经过一上午的搜索,总结了C#将excel转pdf的三种方法(导出的excel转化成pdf下载下来)。 设计文章数量较多,没有转载请见谅。 下载地址https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-NET.html 附带MemoryStream与FileStream的相互转换 以上三种方法经过试验是可以使用的。 据说还有用py

    2024年02月04日
    浏览(37)
  • C# 使用NPOI操作EXCEL

    1.添加NOPI         引用-管理NuGet程序包-添加NOPI 2.相关程序集 3.添加命名空间 4.从Excel导入的dgv样例 5.从dgv导入到Excel

    2024年02月11日
    浏览(47)
  • C# NPOI操作Excel汇总

    C#操作Excel有多种方法,如通过数据库的方式来读写Excel的OleDb方式,但是OleDb方式需要安装微软office,还可以通过COM组件方式操作Excel,也需要安装微软Excel。如果不想安装微软办公套餐可以使用ClosedXML、EPPlus、NPOI。本文主要是介绍NPOI的常用使用方法。 Apache POI是Apache软件基金

    2024年02月12日
    浏览(35)
  • 关于java操作excel导入导出三种方式

    在平时的业务系统开发中,少不了需要用到导出、导入excel功能,今天我们就一起来总结一下,如果你正为此需求感到困惑,那么阅读完本文,你一定会有所收获! 大概在很久很久以前,微软的电子表格软件 Excel 以操作简单、存储数据直观方便,还支持打印报表,在诞生之初

    2024年02月05日
    浏览(31)
  • C#读取Excel文件

    使用C#读取excel文件,需要引用excel名称空间。以及DataSet数据集合,将Excel转入其中方便读写。例如下面这个方法,就是用于Excel表格中的信息。   获取了这张表的整体信息后,我们可以去尝试获取表的具体单元格信息。方法如下: 我们可以思考一下,为什么在游戏开发过程中

    2024年02月11日
    浏览(39)
  • C# 读取Excel的几种常见方式及实现步骤

    目录 1.使用 Microsoft Office Interop Excel 库 2.使用 OLEDB 数据库连接方式 3. 使用 EPPlus 库 在 C# 中,我们可以使用以下几种方式将 Excel 文件中的数据读取到 DataTable 中: 1.使用 Microsoft Office Interop Excel 库 这种方法需要安装 Microsoft Office,并且性能较低。具体实现步骤如下: 2.使用 O

    2024年02月12日
    浏览(27)
  • C# winform 将excel表格导入datagridView 的方式

    方式一: 方式二:

    2024年02月05日
    浏览(38)
  • C# 如何读取Excel文件

    当处理Excel文件时,从中读取数据是一个常见的需求。通过读取Excel数据,可以获取电子表格中包含的信息,并在其他应用程序或编程环境中使用这些数据进行进一步的处理和分析。本文将分享一个使用免费库来实现C#中读取Excel数据的方法。具体如下: 在VS中通过Nuget安装免费

    2024年02月03日
    浏览(35)
  • python生成excel文件的三种方式

    在我们做平常工作中都会遇到操作excel,那么今天写一篇,如何通过python操作excel。当然python操作excel的库有很多,比如pandas,xlwt/xlrd,openpyxl等,每个库都有不同的区别,具体的区别,大家一起来看看吧~ xlrd是对于Excel进行读取,xlrd 操作的是xls/xlxs格式的excel xlwt是对于Excel进

    2024年02月15日
    浏览(29)
  • C#小轮子:MiniExcel,快速操作Excel

    Excel的操作是我们最常用的操作,Excel相当于一个小型的数据库,目的是为了方便查看。 最近淘到了MiniExcel,简单来说就是特别好用 MiniExcel Github仓库 Visual Studio 2022 .NET Core 6.0 Nuget MiniExcel Newtonsoft.Json(方便查看数据) 普通读写就是列名和实体类完全一致 读 新建Person测试类 新建

    2024年02月12日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包