本文实例讲述了C#.net编程创建Access文件和Excel文件的方法。分享给大家供大家参考,具体如下:
一些系统可能需求把数据导出到Access或者Excel文件格式,以方便的传递数据、打印等。
Excel 文件或者 Access这两种需要导出的文件可能并不是事先就存在的,这就需要我们自己编程生成他们,下面整理一下生成这两个文件的一些方法,只罗列最常用的。并不全。
一、首先生成Excel文件。
方案一、如果用Excel保存的只是二维数据,也就是把他当数据库的来用。
最简单,你不用引用任何额外组件,只需要用 OLEDB 就可以完成创建Excel文件。 范例代码如下。
using System.Data.OleDb; public static void CreateExcelFile2() { string OLEDBConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c://aa2.xls;"; OLEDBConnStr += " Extended Properties=Excel 8.0;"; string strCreateTableSQL = @" CREATE TABLE "; strCreateTableSQL += @" 测试表 "; strCreateTableSQL += @" ( "; strCreateTableSQL += @" ID INTEGER, "; strCreateTableSQL += @" UserID INTEGER, "; strCreateTableSQL += @" UserIP VARCHAR , "; strCreateTableSQL += @" PostTime DATETIME , "; strCreateTableSQL += @" FromParm VARCHAR "; strCreateTableSQL += @" ) "; OleDbConnection oConn = new OleDbConnection(); oConn.ConnectionString = OLEDBConnStr; OleDbCommand oCreateComm = new OleDbCommand(); oCreateComm.Connection = oConn; oCreateComm.CommandText = strCreateTableSQL; oConn.Open(); oCreateComm.ExecuteNonQuery(); oConn.Close(); } using System.Data.OleDb; public static void CreateExcelFile2() { string OLEDBConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c://aa2.xls;"; OLEDBConnStr += " Extended Properties=Excel 8.0;"; string strCreateTableSQL = @" CREATE TABLE "; strCreateTableSQL += @" 测试表 "; strCreateTableSQL += @" ( "; strCreateTableSQL += @" ID INTEGER, "; strCreateTableSQL += @" UserID INTEGER, "; strCreateTableSQL += @" UserIP VARCHAR , "; strCreateTableSQL += @" PostTime DATETIME , "; strCreateTableSQL += @" FromParm VARCHAR "; strCreateTableSQL += @" ) "; OleDbConnection oConn = new OleDbConnection(); oConn.ConnectionString = OLEDBConnStr; OleDbCommand oCreateComm = new OleDbCommand(); oCreateComm.Connection = oConn; oCreateComm.CommandText = strCreateTableSQL; oConn.Open(); oCreateComm.ExecuteNonQuery(); oConn.Close(); }
在你执行创建表的同时,系统如果发现Excel文件不存在,就自动完成了Excel文件的创建。这点如果没接触过的人,可能会不知道的。
至于对其中的增加、修改操作, 跟普通数据库没啥两样,就不描述了。
方案二、直接生成一个使用间隔符号隔开每一项数据的纯文本文件,但是文件的后缀是 XLS 。
注意:这时候,如果你直接用Excel打开这样的文件,没问题,一切正常,但是如果你用ADO.net 读取这个文件的时候,你的链接引擎不应该是Excel,而是文本文件(Microsoft Text Driver)。也就是链接字符串不应该是
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c://aa2.xls;Extended Properties=Excel 8.0;"
而应该是下面的方式:
OLEDB的方式连接字符串:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C://11.txt;Extended Properties='text;HDR=No;FMT=TabDelimited'
ODBC的方式读TXT字符串写法:
Driver={Microsoft Text Driver (*.txt; *.csv)}; Dbq=C://11.txt; Extensions=asc,csv,tab,txt;
方案三、你要创建的Excel文件,有一些Excel自己的特色需要创建,这就需要使用 Com 了,即:Microsoft Excel Object Library了
请添加 Microsoft Excel 11.0 Object Library 对它的引用,根据你装的Office的版本,这个组件库的版本也不一样。
范例代码:
public static void CreateExcelFile() { string FileName = "c://aa.xls"; Missing miss = Missing.Value; Excel.Application m_objExcel = new Excel.Application(); m_objExcel.Visible = false; Excel.Workbooks m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks; Excel.Workbook m_objBook = (Excel.Workbook)(m_objBooks.Add(miss)); m_objBook.SaveAs(FileName, miss, miss, miss, miss, miss, Excel.XlSaveAsAccessMode.xlNoChange, miss, miss,miss, miss, miss); m_objBook.Close(false, miss, miss); m_objExcel.Quit(); }
我这里只是简单的创建了Excel文件,没有更多的操作Excel,如果想深入学习的话可以参考本站的相关文章。
二、生成Access 数据库
Access 毕竟是一个数据库,所以Excel上述第一种方法,无法适用。
创建Access 数据库文件可以使用 ADOX,
ADOX与OleDB的区别:ADOX是 data api 只是一个接口, OLEDB 是数据提供者,API 去调用 数据提供者。
范例代码:
使用前,请添加引用 Microsoft ADO Ext. 2.x for DDL and Security 根据你的操作系统,可能这里的版本也不一样。
using ADOX; using System.IO; public static void CreateAccessFile(string FileName) { if(!File.Exists(FileName)) { ADOX.CatalogClass cat = new ADOX.CatalogClass(); cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName +";"); cat = null; } }
上述代码只是生成了Access数据库,适用ADOX你也可以操作数据库,增加表等等操作。
using System; using ADOX; namespace WebPortal { /// <summary> /// CreateAccessDB 的摘要说明。 /// 对于不同版本的ADO,需要添加不同的引用 /// 请添加引用Microsoft ADO Ext. 2.7 for DDL and Security /// 请添加引用Microsoft ADO Ext. 2.8 for DDL and Security /// </summary> public class CreateAccessDB : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { //为了方便测试,数据库名字采用比较随机的名字,以防止添加不成功时还需要重新启动IIS来删除数据库。 string dbName = "D://NewMDB"+DateTime.Now.Millisecond.ToString()+".mdb"; ADOX.CatalogClass cat = new ADOX.CatalogClass(); cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbName +";"); Response.Write("数据库:" + dbName + "已经创建成功!"); ADOX.TableClass tbl = new ADOX.TableClass(); tbl.ParentCatalog = cat; tbl.Name="MyTable"; //增加一个自动增长的字段 ADOX.ColumnClass col = new ADOX.ColumnClass(); col.ParentCatalog = cat; col.Type=ADOX.DataTypeEnum.adInteger; // 必须先设置字段类型 col.Name = "id"; col.Properties["Jet OLEDB:Allow Zero Length"].Value= false; col.Properties["AutoIncrement"].Value= true; tbl.Columns.Append (col,ADOX.DataTypeEnum.adInteger,0); //增加一个文本字段 ADOX.ColumnClass col2 = new ADOX.ColumnClass(); col2.ParentCatalog = cat; col2.Name = "Description"; col2.Properties["Jet OLEDB:Allow Zero Length"].Value= false; tbl.Columns.Append (col2,ADOX.DataTypeEnum.adVarChar,25); //设置主键 tbl.Keys.Append("PrimaryKey",ADOX.KeyTypeEnum.adKeyPrimary,"id","",""); cat.Tables.Append (tbl); Response.Write("<br>数据库表:" + tbl.Name + "已经创建成功!"); tbl=null; cat = null; } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } }
希望本文所述对大家C#程序设计有所帮助。
更多C#.net编程创建Access文件和Excel文件的方法详解相关文章请关注PHP中文网!

Untuk memulakan C# .NET Development, anda perlu: 1. Memahami pengetahuan asas C# dan konsep teras Rangka Kerja NET; 2. Menguasai konsep asas pembolehubah, jenis data, struktur kawalan, fungsi dan kelas; 3. Belajar ciri -ciri canggih C#, seperti LINQ dan pengaturcaraan asynchronous; 4. Berkenaan dengan teknik debugging dan kaedah pengoptimuman prestasi untuk kesilapan biasa. Dengan langkah -langkah ini, anda secara beransur -ansur boleh menembusi dunia C#.net dan menulis aplikasi yang cekap.

Hubungan antara C# dan .NET tidak dapat dipisahkan, tetapi mereka bukan perkara yang sama. C# adalah bahasa pengaturcaraan, sementara .NET adalah platform pembangunan. C# digunakan untuk menulis kod, menyusun bahasa pertengahan .NET (IL), dan dilaksanakan oleh Runtime .NET (CLR).

C#.NET masih penting kerana ia menyediakan alat dan perpustakaan yang kuat yang menyokong pelbagai pembangunan aplikasi. 1) C# menggabungkan rangka kerja NET untuk menjadikan pembangunan cekap dan mudah. 2) Mekanisme keselamatan dan sampah jenis C#meningkatkan kelebihannya. 3) .NET menyediakan persekitaran berjalan lintas platform dan API yang kaya, meningkatkan fleksibiliti pembangunan.

C#.netisversatileforbothwebanddesktopdevelopment.1) Forweb, useasp.netfordynamicapplications.2) Fordesktop, ExployWindowsFormsor Wpfforrichinterfaces.3) UseXamarinforcross-platformdevelopment, enablingcodesharingacrosswindows, macOS, linux, andmobiledevices.

C# dan .NET menyesuaikan diri dengan keperluan teknologi baru melalui kemas kini dan pengoptimuman berterusan. 1) C# 9.0 dan .NET5 Memperkenalkan jenis rekod dan pengoptimuman prestasi. 2) .Netcore meningkatkan sokongan asli dan kontena awan. 3) ASP.Netcore mengintegrasikan dengan teknologi web moden. 4) ML.NET menyokong pembelajaran mesin dan kecerdasan buatan. 5) Pengaturcaraan Asynchronous dan Amalan Terbaik meningkatkan prestasi.

C#.netissusuitibleforenterprise-levelapplicationswithinthememicrosoftecosystemduetoitsstrongtyping, richlibraries, androbustperformance.

Proses pengaturcaraan C# dalam .NET termasuk langkah -langkah berikut: 1) Menulis C# Code, 2) Menyusun bahasa pertengahan (IL), dan 3) yang dilaksanakan oleh Runtime .NET (CLR). Kelebihan C# dalam .NET adalah sintaks moden, sistem jenis yang kuat dan integrasi yang ketat dengan Rangka Kerja .NET, sesuai untuk pelbagai senario pembangunan dari aplikasi desktop ke perkhidmatan web.

C# adalah bahasa pengaturcaraan yang berorientasikan objek moden yang dibangunkan oleh Microsoft dan sebagai sebahagian daripada Rangka Kerja .NET. 1.C# menyokong pengaturcaraan berorientasikan objek (OOP), termasuk enkapsulasi, warisan dan polimorfisme. 2. Pengaturcaraan Asynchronous dalam C# dilaksanakan melalui Async dan menunggu kata kunci untuk meningkatkan respons aplikasi. 3. Gunakan LINQ untuk memproses koleksi data dengan ringkas. 4. Kesilapan umum termasuk pengecualian rujukan null dan pengecualian indeks luar. Kemahiran penyahpepijatan termasuk menggunakan debugger dan pengendalian pengecualian. 5. Pengoptimuman Prestasi termasuk menggunakan StringBuilder dan mengelakkan pembungkusan yang tidak perlu dan unboxing.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Dreamweaver CS6
Alat pembangunan web visual

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma