Panduan: Interop.Excel.dll模块
menggunakan Sistem;
menggunakan System.Collections.Generik;
menggunakan Sistem.Teks;
menggunakan Sistem.Data;
menggunakan Sistem.Data.OleDb;
menggunakan System.Windows.Forms;
menggunakan Sistem.Refleksi;
menggunakan Unggul;
namespace AnalisisSistem.DB
{
Operasi Excel kelas publik
{
string pribadi _fileName;//保存路径名
Operasi Excel publik (string nama file)
{
_Namafile = Namafile;
}
OleDbConnection GetConnection() pribadi
{
string connectString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Sumber Data={0};Properti Diperluas=Excel 8.0",_fileName);
OleDbConnection myConn = OleDbConnection baru(connectString);//建立链接
kembalikan myConn;
}
Sistem publik.Data.DataTable ExecuteTableResult(string strSql)
{
Sistem.Data.DataTable dt = Sistem.Data.DataTable() baru;
mencoba
{
OleDbConnection samb = ini.GetConnection();
OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);//执行相关SQL语句
da.Isi(dt);
}
catch (Sistem.Pengecualian ex)
{
//tidak melakukan apa pun
}
kembalikan dt;
}
DataSet publik ExecuteSetResult(string strSql,string table_name)
{
Kumpulan Data ds = Kumpulan Data baru();
string temp_name = "[" + nama_tabel + "$]";
mencoba
{
OleDbConnection samb = ini.GetConnection();
OleDbDataAdapter da = new OleDbDataAdapter(strSql, samb);
da.Isi(ds,nama_temp);
}
catch (Sistem.Pengecualian ex)
{
//tidak melakukan apa pun
}
kembali ds;
}
string publik ExecuteOneResult(string strSql)
{
hasil string = "";
Sistem.Data.DataTable dt = Sistem.Data.DataTable() baru;
mencoba
{
OleDbConnection samb = ini.GetConnection();
OleDbDataAdapter da = new OleDbDataAdapter(strSql, samb);
da.Isi(dt);
}
catch (Sistem.Pengecualian ex)
{
//tidak melakukan apa pun
}
if (dt != null && dt.Baris.Jumlah > 0)
{
hasil = dt.Baris[0][0].ToString();
}
hasil pengembalian;
}
kekosongan publik ExecuteNonResult(string strSql)
{
mencoba
{
OleDbConnection samb = ini.GetConnection();
OleDbCommand cmd = OleDbCommand baru(strSql, samb);
cmd.ExecuteNonQuery();
}
catch (Sistem.Pengecualian ex)
{
//tidak melakukan apa pun
}
}
pribadi _Buku Kerja W_B(Aplikasi Excel.Aplikasi)
{
Buku kerja buku kerja = app.Buku Kerja;
_Buku kerja buku kerja = buku kerja.Tambahkan(XlWBATtemplate.xlWBATWorksheet);
kembalikan buku kerja;
}
pribadi _Lembar Kerja W_S(_Buku kerja_buku_kerja)
{
Lembar lembar = work_book.Worksheets;
_Lembar kerja lembar kerja = (_Lembar kerja)sheets.get_Item(1);//获取选择第一个表,本身默认名称为Sheet1
kembalikan lembar kerja;
}
//DataGridView中导出数据到Excel表,单表导出
kekosongan publik Excel_out(DataGridView dataGridView1)
{
//建立Excel对象
Aplikasi Excel.Aplikasi = Excel.Aplikasi baru();
mencoba
{
_Buku kerja buku kerja = this.W_B(aplikasi);
_Lembar kerja lembar kerja = this.W_S(buku kerja);
string sLen = "";
//取得最后一列列名
char H = (char)(64 + dataGridView1.ColumnCount / 26);
char L = (char)(64 + dataGridView1.ColumnCount % 26);
jika (dataGridView1.ColumnCount <26)
{
sLen = L.ToString();
}
kalau tidak
{
sLen = H.ToString() + L.ToString();
}
//标题
string sTmp = sLen + "1";
Rentang ranCaption = lembar kerja.get_Range(sTmp, "A1");
string[] asCaption = string baru[dataGridView1.ColumnCount];
untuk (int i = 0; i < dataGridView1.ColumnCount; i++)
{
asCaption[i] = dataGridView1.Columns[i].HeaderText;
}
ranCaption.Value2 = asCaption;
//数据
objek[] obj = objek baru[dataGridView1.Columns.Count];
untuk (int r = 0; r < dataGridView1.RowCount - 1; r++)
{
untuk (int l = 0; l < dataGridView1.Columns.Count; l++)
{
if (dataGridView1[l, r].ValueType == typeof(DateTime))
{
obj[l] = dataGridView1[l, r].Nilai.ToString();
}
kalau tidak
{
obj[l] = dataGridView1[l, r].Nilai;
}
}
string sel1 = sLen + ((int)(r + 2)).ToString();
string sel2 = "A" + ((int)(r + 2)).ToString();
Rentang berlari = lembar kerja.get_Range(sel1, sel2);
berlari.Nilai2 = objek;
}
//保存
buku kerja.SaveCopyAs(this._fileName);
buku kerja.Tersimpan = true;
}
Akhirnya
{
//关闭
aplikasi.UserControl = false;
aplikasi.Keluar();
}
}
/// <ringkasan>
/// 多表导出
/// </ringkasan>
/// <param name="dataGridView">DataGridView列表集合</param>
/// <param name="TableList">表名称集合</param>
public void Excel_out_MulTable(Daftar<DataGridView> dataGridView, string[] Daftar Tabel)
{
//建立Excel对象
Aplikasi Excel.Aplikasi = Excel.Aplikasi baru();
mencoba
{
Buku kerja buku kerja = app.Buku Kerja;//定义一个工作簿集合
_Buku kerja buku kerja = buku kerja.Add(XlWBATtemplate.xlWBATWorksheet);//向工作簿添加一个新工作簿
Lembar lembar = buku kerja.Lembar kerja;//定义一个工作表集合
_Lembar kerja lembar kerja;
int nomor = 0;
while (nomorw++ < (Daftar Tabel.GetLength(0) - 1))
{
sheet.Add(Nilai. Hilang, Nilai. Hilang, Nilai. Hilang, Nilai. Hilang);//向一个工作表集合添加一个新工作表
}
/*提醒:Sistem.Refleksi中的类,所以记得引入*/
nomor = 0;
foreach (DataGridView dataGridView1 di dataGridView)
{
lembar kerja = nol;
worksheet = (_Worksheet)sheets.get_Item(wnumber + 1);//取出需要进行操作的工作表
lembar kerja.Nama = Daftar Tabel[nomor];//设置改工作表名称
jika (nomor != 0)
sheet.Select(wnumber);//选中操作表
string sLen = "";
//取得最后一列列名
char H = (char)(64 + dataGridView1.ColumnCount / 26);
char L = (char)(64 + dataGridView1.ColumnCount % 26);
jika (dataGridView1.ColumnCount <26)
{
sLen = L.ToString();
}
kalau tidak
{
sLen = H.ToString() + L.ToString();
}
//标题
string sTmp = sLen + "1";
Rentang ranCaption = lembar kerja.get_Range(sTmp, "A1");
string[] asCaption = string baru[dataGridView1.ColumnCount];
untuk (int i = 0; i < dataGridView1.ColumnCount; i++)
{
asCaption[i] = dataGridView1.Columns[i].HeaderText;
}
ranCaption.Value2 = asCaption;
//数据
objek[] obj = objek baru[dataGridView1.Columns.Count];
untuk (int r = 0; r < dataGridView1.RowCount - 1; r++)
{
untuk (int l = 0; l < dataGridView1.Columns.Count; l++)
{
if (dataGridView1[l, r].ValueType == typeof(DateTime))
{
obj[l] = dataGridView1[l, r].Nilai.ToString();
}
kalau tidak
{
obj[l] = dataGridView1[l, r].Nilai;
}
}
string sel1 = sLen + ((int)(r + 2)).ToString();
string sel2 = "A" + ((int)(r + 2)).ToString();
Rentang berlari = lembar kerja.get_Range(sel1, sel2);//设置单元格
berlari.Nilai2 = objek;
}
nomor++;
}
//保存
buku kerja.SaveCopyAs(this._fileName);
buku kerja.Tersimpan = true;
}
Akhirnya
{
//关闭
aplikasi.UserControl = false;
aplikasi.Keluar();
}
}
}
}