الملف التالي: قم بتنزيل الملف الموجود في ملف Interop.Excel.dll.
باستخدام النظام؛
باستخدام System.Collections.Generic؛
باستخدام System.Text؛
باستخدام System.Data؛
باستخدام System.Data.OleDb؛
باستخدام System.Windows.Forms؛
باستخدام System.Reflection؛
باستخدام إكسل.
مساحة الاسم AnalysisSystem.DB
{
فئة عامة ExcelOperation
{
سلسلة خاصة _fileName;//保存路径名
عملية Excel العامة (اسم ملف السلسلة)
{
_fileName = fileName;
}
OleDbConnection الخاص GetConnection()
{
stringconnectString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;مصدر البيانات={0};الخصائص الموسعة=Excel 8.0",_fileName);
OleDbConnection myConn = new OleDbConnection(connectString);//建立链接
إرجاع myConn؛
}
System.Data.DataTable العام ExecuteTableResult (سلسلة strSql)
{
System.Data.DataTable dt = new System.Data.DataTable();
يحاول
{
OleDbConnection conn = this.GetConnection();
OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);
da.Fill(dt);
}
قبض (System.Exception على سبيل المثال)
{
// لا تفعل شيئًا
}
العودة د.ت.
}
مجموعة البيانات العامة ExecuteSetResult (سلسلة strSql، سلسلة table_name)
{
DataSet ds = new DataSet();
سلسلة temp_name = "[" + table_name + "$]";
يحاول
{
OleDbConnection conn = this.GetConnection();
OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);
da.Fill(ds,temp_name);
}
قبض (System.Exception على سبيل المثال)
{
// لا تفعل شيئًا
}
عودة س.
}
السلسلة العامة ExecuteOneResult (سلسلة strSql)
{
نتيجة السلسلة = ""؛
System.Data.DataTable dt = new System.Data.DataTable();
يحاول
{
OleDbConnection conn = this.GetConnection();
OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);
da.Fill(dt);
}
قبض (System.Exception على سبيل المثال)
{
// لا تفعل شيئًا
}
إذا (dt != null && dt.Rows.Count > 0)
{
result = dt.Rows[0][0].ToString();
}
نتيجة الإرجاع؛
}
الفراغ العام ExecuteNonResult (سلسلة strSql)
{
يحاول
{
OleDbConnection conn = this.GetConnection();
OleDbCommand cmd = new OleDbCommand(strSql, conn);
cmd.ExecuteNonQuery();
}
قبض (System.Exception على سبيل المثال)
{
// لا تفعل شيئًا
}
}
_Workbook W_B الخاص (تطبيق Excel.Application)
{
المصنفات المصنفات = app.Workbooks؛
_Workbook Workbook = Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
مصنف العودة؛
}
_ورقة عمل خاصة W_S(_كتاب_عمل_المصنف)
{
أوراق الأوراق = Work_book.Worksheets؛
_ورقة العمل = (_ورقة العمل)sheets.get_Item(1);// قم بمسح ورقة العمل 1
ورقة عمل العودة؛
}
// قم بتنزيل DataGridView، قم بإنشاء برنامج Excel، قم بتنزيله
الفراغ العام Excel_out (DataGridView dataGridView1)
{
//الحصول على ملف Excel
تطبيق Excel.Application = Excel.Application() الجديد؛
يحاول
{
_Workbook Workbook = this.W_B(app);
_ورقة عمل ورقة العمل = this.W_S(workbook);
سلسلة سلين = "";
//取得最后一列列名
شار H = (شار)(64 + dataGridView1.ColumnCount / 26);
شار L = (شار)(64 + dataGridView1.ColumnCount % 26);
إذا (dataGridView1.ColumnCount <26)
{
sLen = L.ToString();
}
آخر
{
sLen = H.ToString() + L.ToString();
}
// 标题
سلسلة sTmp = sLen + "1"؛
Range ranCaption =worksheet.get_Range(sTmp, "A1");
string[] asCaption = new string[dataGridView1.ColumnCount];
لـ (int i = 0; i < dataGridView1.ColumnCount; i++)
{
asCaption[i] = dataGridView1.Columns[i].HeaderText;
}
ranCaption.Value2 = asCaption;
//المصدر
object[] obj = new object[dataGridView1.Columns.Count];
لـ (int r = 0; r < dataGridView1.RowCount - 1; r++)
{
لـ (int l = 0; l < dataGridView1.Columns.Count; l++)
{
إذا (dataGridView1[l، r].ValueType == typeof(DateTime))
{
obj[l] = dataGridView1[l, r].Value.ToString();
}
آخر
{
obj[l] = dataGridView1[l, r].Value;
}
}
string cell1 = sLen + ((int)(r + 2)).ToString();
سلسلة cell2 = "A" + ((int)(r + 2)).ToString();
تم تشغيل النطاق = Worksheet.get_Range(cell1, cell2);
run.Value2 = obj;
}
// 保存
Workbook.SaveCopyAs(this._fileName);
المصنف. تم الحفظ = صحيح؛
}
أخيراً
{
//关闭
app.UserControl = false;
app.Quit();
}
}
/// <الملخص>
/// 多表导出
/// </الملخص>
/// <param name="dataGridView">مخطط DataGridView</param>
/// <param name="TableList">قائمة العناوين</param>
الفراغ العام Excel_out_MulTable (List<DataGridView> dataGridView, string[] TableList)
{
//الحصول على ملف Excel
تطبيق Excel.Application = Excel.Application() الجديد؛
يحاول
{
المصنفات المصنفات = app.Workbooks;//定义一个工作簿集合
_ مصنف المصنف = المصنفات.Add(XlWBATemplate.xlWBATWorksheet);//الحصول على معلومات حول المصنف
أوراق الأوراق = المصنف. أوراق العمل؛
_ ورقة عمل ورقة العمل؛
عدد صحيح = 0؛
بينما (wnumber++ < (TableList.GetLength(0) - 1))
{
Sheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value);
}
/*العنوان: نظام الانعكاس المفقود، عنوان الانعكاس المفقود*/
رقم = 0;
foreach (DataGridView dataGridView1 في dataGridView)
{
ورقة عمل = فارغة؛
ورقة عمل = (_ورقة العمل)sheets.get_Item(wnumber + 1);// قم بكتابة ورقة العمل
Worksheet.Name = TableList[wnumber];//اكتب قائمة المهام
إذا (رقم! = 0)
Sheets.Select(wnumber);//اختر الرقم الصحيح
سلسلة سلين = "";
//取得最后一列列名
شار H = (شار)(64 + dataGridView1.ColumnCount / 26);
شار L = (شار)(64 + dataGridView1.ColumnCount % 26);
إذا (dataGridView1.ColumnCount <26)
{
sLen = L.ToString();
}
آخر
{
sLen = H.ToString() + L.ToString();
}
// 标题
سلسلة sTmp = sLen + "1"؛
Range ranCaption =worksheet.get_Range(sTmp, "A1");
string[] asCaption = new string[dataGridView1.ColumnCount];
لـ (int i = 0; i < dataGridView1.ColumnCount; i++)
{
asCaption[i] = dataGridView1.Columns[i].HeaderText;
}
ranCaption.Value2 = asCaption;
//المصدر
object[] obj = new object[dataGridView1.Columns.Count];
لـ (int r = 0; r < dataGridView1.RowCount - 1; r++)
{
لـ (int l = 0; l < dataGridView1.Columns.Count; l++)
{
إذا (dataGridView1[l، r].ValueType == typeof(DateTime))
{
obj[l] = dataGridView1[l, r].Value.ToString();
}
آخر
{
obj[l] = dataGridView1[l, r].Value;
}
}
string cell1 = sLen + ((int)(r + 2)).ToString();
سلسلة cell2 = "A" + ((int)(r + 2)).ToString();
تم تشغيل النطاق = ورقة العمل.get_Range(cell1, cell2);
run.Value2 = obj;
}
wnumber++;
}
// 保存
Workbook.SaveCopyAs(this._fileName);
المصنف. تم الحفظ = صحيح؛
}
أخيراً
{
//关闭
app.UserControl = false;
app.Quit();
}
}
}
}