//导出到EXCEL
public bool toOutExcel(DataGridView dg, string fileName)
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.*";
dlg.FilterIndex = 1;
dlg.DefaultExt = "xls";
dlg.FileName = fileName + ".xls";
if (dlg.ShowDialog() != DialogResult.OK) return false;
try
{
Excel.Application m_objExcel = new Excel.Application();
if (m_objExcel == null)
{
MessageBox.Show("EXCEL无法启动!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return false;
}
m_objExcel.Visible = true;
Excel.Workbooks m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;
Excel._Workbook m_objBook = (Excel._Workbook)(m_objBooks.Add(Type.Missing));
Excel.Sheets m_objSheets = (Excel.Sheets)m_objBook.Worksheets;
Excel._Worksheet m_objSheet = (Excel._Worksheet)(m_objSheets.get_Item(1));
//设置格式
//自由列宽
Excel.Range m_objRange = m_objSheet.get_Range("A1", Type.Missing);
m_objRange = m_objRange.get_Resize(dg.RowCount + 1, dg.ColumnCount);
m_objRange.HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;
m_objRange.Font.Size = 10;
m_objRange.NumberFormatLocal = "@";
for (int icol = 0; icol < dg.ColumnCount; icol++)
{
DataGridViewColumn dgc = dg.Columns[icol];
if (dgc.Visible == false)
{
dg.Columns.Remove(dgc);
icol--;
}
}
object[,] objData = new Object[dg.RowCount + 1, dg.ColumnCount];
for (int r = 0; r < dg.RowCount + 1; r++)
{
for (int j = 0; j < dg.ColumnCount; j++)
{
if (r == 0)//加标题
{
objData[r, j] = dg.Columns[j].HeaderText;
}
else
{
objData[r, j] = dg[j, r - 1].Value;
}
}
}
m_objRange.Value2 = objData;
m_objRange.Columns.AutoFit();
object m_objOpt = System.Reflection.Missing.Value;
if (System.IO.File.Exists(dlg.FileName))
{
System.IO.File.Delete(dlg.FileName);
}
m_objBook.SaveAs(dlg.FileName, m_objOpt, m_objOpt,
m_objOpt, m_objOpt, m_objOpt, Excel.XlSaveAsAccessMode.xlNoChange,
m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt);
return true;
}
catch (Exception ex)
{
Utility.ShowErrorMessage(ex.Message);
return false;
}
}
//由 EXCEL 导入到DataGrid1 EXCEL2003
public void toDgvFromExcel(DataGridView dg)
{
// 打开文件
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.*";
dlg.FilterIndex = 1;
dlg.DefaultExt = "xls";
dlg.FileName = "端子排数据.xls";
if (dlg.ShowDialog() != DialogResult.OK)
return ;
System.Data.OleDb.OleDbConnection oleDbConnection1 = new System.Data.OleDb.OleDbConnection();
System.Data.OleDb.OleDbDataAdapter oleDbDataAdapter1 = new System.Data.OleDb.OleDbDataAdapter();
DataSet dataSet1 = new DataSet();
string strConnection = "";
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + dlg.FileName + ";" +
"Extended Properties=Excel 8.0;";
oleDbConnection1.ConnectionString = strConnection;
oleDbDataAdapter1.SelectCommand = new System.Data.OleDb.OleDbCommand();
oleDbDataAdapter1.SelectCommand.CommandText = "SELECT * FROM [Sheet1$]";
oleDbDataAdapter1.SelectCommand.Connection = oleDbConnection1;
DataTable dt = new DataTable();
oleDbDataAdapter1.Fill(dt);
dg.DataSource = dt;
}