20-5-2011 14:22:52
Em có thể làm như sau (Code này a đã làm trong 1 phần mềm Quản lý Winform và khách hàng đã dùng ổn định nên cứ làm như vậy là được)
using Office_12 = Microsoft.Office.Core;
using Excel_12 = Microsoft.Office.Interop.Excel;
DataTable dsExcel =Day là datatale đổ vào Grid
Microsoft.Office.Interop.Excel.ApplicationClass excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
excel.Application.Workbooks.Add(true);
Excel_12.Application oExcel_12 = null; //Excel_12 Application
Excel_12.Workbook oBook = null; // Excel_12 Workbook
Excel_12.Sheets oSheetsColl = null; // Excel_12 Worksheets collection
Excel_12.Worksheet oSheet = null; // Excel_12 Worksheet
Excel_12.Range oRange = null; // Cell or Range in worksheet
Object oMissing = System.Reflection.Missing.Value;
oExcel_12 = new Excel_12.Application();
// Make Excel_12 visible to the user.
oExcel_12.Visible = true;
// Set the UserControl property so Excel_12 won't shut down.
oExcel_12.UserControl = true;
// System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-US");
// Add a workbook.
oBook = oExcel_12.Workbooks.Add(oMissing);
// Get worksheets collection
oSheetsColl = oExcel_12.Worksheets;
oSheet = (Excel_12.Worksheet)oSheetsColl.get_Item("Sheet1");
for (int j = 0; j < dsExcel.Columns.Count; j++)
{
//bo qua dong so 7
oRange = (Excel_12.Range)oSheet.Cells[8, j + 1];
oRange.Value2 = dsExcel.Columns[j].ColumnName;
// oRange.ColumnWidth = "60";
oRange.Font.Bold = true;
}
for (int i = 0; i < dsExcel.Rows.Count; i++)
{
for (int j = 0; j < dsExcel.Columns.Count; j++)
{
oRange = (Excel_12.Range)oSheet.Cells[i + 9, j + 1];
oRange.Value2 = dsExcel.Rows
[j];
}
}
oBook.Close(null, null, null);
excel.Application.Workbooks.Close();
excel.Quit();
oExcel_12 = null;
oBook = null;
oSheetsColl = null;
oSheet = null;
oRange = null;
---
Nhận thiết kế Web, Module DNN: http://websitegiarevn.com