Файл: файл Interop.Excel.dll, файл Interop.Excel.dll.
использование системы;
использование System.Collections.Generic;
использование System.Text;
использование System.Data;
используя System.Data.OleDb;
использование System.Windows.Forms;
использование System.Reflection;
использование Excel;
пространство имен AnalysisSystem.DB
{
общедоступный класс ExcelOperation
{
частная строка _fileName;//保存路径名
общедоступная ExcelOperation (строковое имя файла)
{
_имя_файла = имя_файла;
}
частный OleDbConnection GetConnection()
{
string ConnectString = 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 = новый System.Data.DataTable();
пытаться
{
OleDbConnection conn = this.GetConnection();
OleDbDataAdapter da = новый OleDbDataAdapter(strSql, conn);//执行相关SQL语句
да.Заполнить(дт);
}
улов (System.Exception ex)
{
// ничего не делать
}
вернуть DT;
}
public DataSet ExecuteSetResult (строка strSql, строка table_name)
{
DataSet ds = новый DataSet();
строка temp_name = "[" + table_name + "$]";
пытаться
{
OleDbConnection conn = this.GetConnection();
OleDbDataAdapter da = новый OleDbDataAdapter (strSql, conn);
da.Fill(ds,temp_name);
}
улов (System.Exception ex)
{
// ничего не делать
}
вернуть дс;
}
общедоступная строка ExecuteOneResult (строка strSql)
{
строковый результат = "";
System.Data.DataTable dt = новый System.Data.DataTable();
пытаться
{
OleDbConnection conn = this.GetConnection();
OleDbDataAdapter da = новый OleDbDataAdapter (strSql, conn);
да.Заполнить(дт);
}
улов (System.Exception ex)
{
// ничего не делать
}
if (dt != null && dt.Rows.Count > 0)
{
результат = dt.Rows[0][0].ToString();
}
вернуть результат;
}
public void ExecuteNonResult (строка strSql)
{
пытаться
{
OleDbConnection conn = this.GetConnection();
OleDbCommand cmd = новый OleDbCommand (strSql, conn);
cmd.ExecuteNonQuery();
}
улов (System.Exception ex)
{
// ничего не делать
}
}
частная _Workbook W_B (приложение Excel.Application)
{
Рабочие книги рабочие книги = app.Workbooks;
_Workbook рабочая книга = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
вернуть трудовую книжку;
}
частный _Worksheet W_S(_Workbook work_book)
{
Листы листы = work_book.Worksheets;
_Worksheet worksheet = (_Worksheet)sheets.get_Item(1);//获取选择第一个表,本身默认名称为Sheet1
вернуть рабочий лист;
}
//Процесс DataGridView в Excel, файл Excel
общественная недействительность Excel_out (DataGridView dataGridView1)
{
//Функция Excel в Excel
Приложение Excel.Application = новое Excel.Application();
пытаться
{
_Workbook рабочая книга = this.W_B(приложение);
_Worksheet рабочий лист = this.W_S(книга);
строка sLen = "";
//取得最后一列列名
char H = (char)(64 + dataGridView1.ColumnCount/26);
char L = (char)(64 + dataGridView1.ColumnCount % 26);
если (dataGridView1.ColumnCount <26)
{
sLen = L.ToString();
}
еще
{
sLen = H.ToString() + L.ToString();
}
//标题
строка sTmp = sLen + «1»;
Диапазон ranCaption = worksheet.get_Range(sTmp, "A1");
строка [] asCaption = новая строка [dataGridView1.ColumnCount];
for (int i = 0; я
asCaption[i] = dataGridView1.Columns[i].HeaderText;
}
ranCaption.Value2 = asCaption;
//数据
объект[] obj = новый объект[dataGridView1.Columns.Count];
for (int r = 0; r < dataGridView1.RowCount - 1; r++)
{
for (int l = 0; l < dataGridView1.Columns.Count; l++)
{
if (dataGridView1[l, r].ValueType == typeof(DateTime))
{
obj[l] = dataGridView1[l, r].Value.ToString();
}
еще
{
obj[l] = dataGridView1[l, r].Value;
}
}
строка cell1 = sLen + ((int)(r + 2)).ToString();
строка cell2 = "A" + ((int)(r + 2)).ToString();
Диапазон пробежал = worksheet.get_Range(cell1, cell2);
ran.Value2 = объект;
}
//保存
рабочая книга.SaveCopyAs(this._fileName);
рабочая книга.Сохранено = правда;
}
окончательно
{
//关闭
app.UserControl = ложь;
приложение.Выход();
}
}
/// <сводка>
/// 多表导出
/// сводка>
/// DataGridView列表集合
/// 表名称集合
public void Excel_out_MulTable (List
{
//Функция Excel в Excel
Приложение Excel.Application = новое Excel.Application();
пытаться
{
Workbooks workbooks = app.Workbooks;//定义一个工作簿集合
_Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);//向工作簿添加一个新工作簿
Листы листы = workbook.Worksheets;//定义一个工作表集合
_Рабочий лист рабочий лист;
int номер = 0;
while (wnumber++ < (TableList.GetLength(0) - 1))
{
листы.Добавить(Missing.Value, Missing.Value, Missing.Value, Missing.Value);//向一个工作表集合添加一个新工作表
}
/*提醒:Missing类为命名空间System.Reflection中的类,所以记得引入*/
номер = 0;
foreach (DataGridView dataGridView1 в dataGridView)
{
рабочий лист = ноль;
рабочий лист = (_Worksheet)sheets.get_Item(wnumber + 1);//取出需要进行操作的工作表
worksheet.Name = TableList[wnumber];//设置改工作表名称
если (wnumber!= 0)
листы.Select(wnumber);//选中操作表
строка sLen = "";
//取得最后一列列名
char H = (char)(64 + dataGridView1.ColumnCount/26);
char L = (char)(64 + dataGridView1.ColumnCount % 26);
если (dataGridView1.ColumnCount <26)
{
sLen = L.ToString();
}
еще
{
sLen = H.ToString() + L.ToString();
}
//标题
строка sTmp = sLen + «1»;
Диапазон ranCaption = worksheet.get_Range(sTmp, "A1");
строка [] asCaption = новая строка [dataGridView1.ColumnCount];
for (int i = 0; я
asCaption[i] = dataGridView1.Columns[i].HeaderText;
}
ranCaption.Value2 = asCaption;
//数据
объект[] obj = новый объект[dataGridView1.Columns.Count];
for (int r = 0; r < dataGridView1.RowCount - 1; r++)
{
for (int l = 0; l < dataGridView1.Columns.Count; l++)
{
if (dataGridView1[l, r].ValueType == typeof(DateTime))
{
obj[l] = dataGridView1[l, r].Value.ToString();
}
еще
{
obj[l] = dataGridView1[l, r].Value;
}
}
строка cell1 = sLen + ((int)(r + 2)).ToString();
строка cell2 = "A" + ((int)(r + 2)).ToString();
Диапазон пройден = worksheet.get_Range(cell1, cell2);//设置单元格
ran.Value2 = объект;
}
номер++;
}
//保存
рабочая книга.SaveCopyAs(this._fileName);
рабочая книга.Сохранено = правда;
}
окончательно
{
//关闭
app.UserControl = ложь;
приложение.Выход();
}
}
}
}