Ausführliche Erklärung zum Erstellen von Access-Dateien und Excel-Dateien mithilfe der C#.net-Programmierung

高洛峰
Freigeben: 2017-01-13 17:01:53
Original
1488 Leute haben es durchsucht

Das Beispiel in diesem Artikel beschreibt, wie Sie Access-Dateien und Excel-Dateien mithilfe der C#.net-Programmierung erstellen. Geben Sie es als Referenz an alle weiter. Die Einzelheiten lauten wie folgt:

Einige Systeme müssen möglicherweise Daten in Access- oder Excel-Dateiformate exportieren, um die Datenübertragung, das Drucken usw. zu erleichtern.

Die beiden Dateien, die exportiert werden müssen, Excel-Dateien oder Access, sind möglicherweise nicht im Voraus vorhanden. Dies erfordert, dass wir sie selbst programmieren und generieren. Hier sind einige Methoden zum Generieren dieser beiden Dateien, und zwar nur die meisten häufig verwendete sind aufgeführt. Nicht alle.

1. Generieren Sie zunächst die Excel-Datei.

Option 1. Wenn Sie Excel zum Speichern nur zweidimensionaler Daten verwenden, verwenden Sie es als Datenbank.

Im einfachsten Fall müssen Sie keine zusätzlichen Komponenten referenzieren, sondern müssen lediglich OLEDB verwenden, um die Excel-Datei zu erstellen. Der Beispielcode lautet wie folgt.

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();
}
Nach dem Login kopieren

Wenn Sie beim Erstellen einer Tabelle feststellen, dass die Excel-Datei nicht vorhanden ist, erstellt das System automatisch die Excel-Datei. Menschen, die noch nie damit in Berührung gekommen sind, wissen das vielleicht nicht.

Die Hinzufügungs- und Änderungsvorgänge unterscheiden sich nicht von gewöhnlichen Datenbanken und werden nicht beschrieben.

Option 2: Generieren Sie direkt eine Nur-Text-Datei, die Leerzeichen verwendet, um die einzelnen Datenelemente zu trennen, aber das Suffix der Datei ist XLS.

Hinweis: Wenn Sie derzeit Excel direkt zum Öffnen einer solchen Datei verwenden, ist das kein Problem, alles ist normal, aber wenn Sie ADO.net zum Lesen dieser Datei verwenden, sollte Ihre Link-Engine nicht Excel sein. Sondern eine Textdatei (Microsoft Text Driver). Das heißt, die Verbindungszeichenfolge sollte nicht

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c://aa2.xls;Extended Properties=Excel 8.0;"
Nach dem Login kopieren

sein, sondern wie folgt lauten:

OLEDB-Weg Verbindungszeichenfolge:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C://11.txt;Extended Properties='text;HDR=No;FMT=TabDelimited'
Nach dem Login kopieren

ODBC-Weg Lesemethode zum Schreiben von TXT-Strings:

Driver={Microsoft Text Driver (*.txt; *.csv)};
Dbq=C://11.txt;
Extensions=asc,csv,tab,txt;
Nach dem Login kopieren

Option 3. Die Excel-Datei, die Sie erstellen möchten, verfügt über einige Excel-eigene Funktionen, die erstellt werden müssen. Sie müssen daher Com verwenden, d. h. die Microsoft Excel-Objektbibliothek

Bitte fügen Sie einen Verweis auf die Objektbibliothek von Microsoft Excel 11.0 hinzu. Die Version dieser Komponentenbibliothek ist je nach der von Ihnen installierten Office-Version unterschiedlich.

Beispielcode:

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();
}
Nach dem Login kopieren

Ich habe hier einfach eine Excel-Datei erstellt, und es gibt keine Manipulation mehr von Excel. Wenn Sie mehr erfahren möchten, können Sie sich auf die entsprechenden Artikel beziehen diese Seite.

2. Access-Datenbank generieren

Access ist schließlich eine Datenbank, daher kann die erste oben genannte Methode in Excel nicht angewendet werden.
Sie können ADOX verwenden, um Access-Datenbankdateien zu erstellen.
Der Unterschied zwischen ADOX und OleDB: ADOX ist die Daten-API, die lediglich eine Schnittstelle ist, die den Datenanbieter aufruft.

Beispielcode:

Bitte fügen Sie vor der Verwendung einen Verweis auf Microsoft ADO Ext 2.x für DDL und Sicherheit hinzu. Abhängig von Ihrem Betriebssystem kann die Version hier unterschiedlich sein.

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;
  }
}
Nach dem Login kopieren

Der obige Code generiert nur die Access-Datenbank. Mit ADOX können Sie auch die Datenbank betreiben, Tabellen hinzufügen usw.

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
 }
}
Nach dem Login kopieren

Ich hoffe, dass dieser Artikel für alle in der C#-Programmierung hilfreich sein wird.

Ausführlichere Erklärungen zum Erstellen von Access-Dateien und Excel-Dateien mithilfe der C#.net-Programmierung finden Sie auf der chinesischen PHP-Website für verwandte Artikel!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!