sgb110
شنبه 14 فروردین 1389, 14:22 عصر
سلام
من چند جا رو واسه گرفتن خروجي اكسل ديدم و تونستم با اين كد ها از گريدم خروجي بگيرم
Microsoft.Office.Interop.Excel.Application oXL;
Microsoft.Office.Interop.Excel.Workbook oWB;
Microsoft.Office.Interop.Excel.Worksheet oSheet;
Microsoft.Office.Interop.Excel.Range oRange;
// Start Excel and get Application object.
oXL = new Microsoft.Office.Interop.Excel.Application();
// Set some properties
// Get a new workbook.
oWB = oXL.Workbooks.Add(Missing.Value);
// Get the active sheet
oSheet = (Microsoft.Office.Interop.Excel.Worksheet)oWB.Acti veSheet;
oSheet.Name = "Report";
// Process the DataTable
// BE SURE TO CHANGE THIS LINE TO USE *YOUR* DATATABLE
// DataTable dt = Customers.RetrieveAsDataTable();
int column=1;
foreach (DataControlField col in GridView1.Columns)
{
oSheet.Cells[1, column] = col.HeaderText.Trim();
column++;
}
int rowCount = 2;
foreach (GridViewRow row in GridView1.Rows)
{
column = 1;
foreach (DataControlField col in GridView1.Columns)
{
oSheet.Cells[rowCount, column] = row.Cells[column-1].Text.Trim();
column++;
}
rowCount += 1;
}
// Resize the columns
oRange = oSheet.get_Range(oSheet.Cells[1, 1],
oSheet.Cells[rowCount, 3]);
oRange.EntireColumn.AutoFit();
oXL.Visible = true;
oXL.DisplayAlerts = false;
// Save the sheet and close
//oSheet = null;
//
//oRange = null;
//oWB.SaveAs("test.xls", Excel.XlFileFormat.xlWorkbookNormal,
// Missing.Value, Missing.Value, Missing.Value, Missing.Value,
// Excel.XlSaveAsAccessMode.xlExclusive,
// Missing.Value, Missing.Value, Missing.Value,
// Missing.Value, Missing.Value);
//oWB.Close(Missing.Value, Missing.Value, Missing.Value);
// oWB = null;
// oXL.Quit();
// Clean up
// NOTE: When in release mode, this does the trick
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
رو سيستم خودم كه ويندوز7 هست و افيسم هم 2007 هيچ مشكلي نيست
ولي وقتي پروژه رو بردم رو ويندوز سرور 2003 كار نكرد
حتي رو اون سيستم آفيس 2007 خودم رو هم نصب كردم ولي بازم كار نكرد
صفحه ارور جاوا اسكريپتي مي ده
ممنون مي شم راهنمايم كنيد
من چند جا رو واسه گرفتن خروجي اكسل ديدم و تونستم با اين كد ها از گريدم خروجي بگيرم
Microsoft.Office.Interop.Excel.Application oXL;
Microsoft.Office.Interop.Excel.Workbook oWB;
Microsoft.Office.Interop.Excel.Worksheet oSheet;
Microsoft.Office.Interop.Excel.Range oRange;
// Start Excel and get Application object.
oXL = new Microsoft.Office.Interop.Excel.Application();
// Set some properties
// Get a new workbook.
oWB = oXL.Workbooks.Add(Missing.Value);
// Get the active sheet
oSheet = (Microsoft.Office.Interop.Excel.Worksheet)oWB.Acti veSheet;
oSheet.Name = "Report";
// Process the DataTable
// BE SURE TO CHANGE THIS LINE TO USE *YOUR* DATATABLE
// DataTable dt = Customers.RetrieveAsDataTable();
int column=1;
foreach (DataControlField col in GridView1.Columns)
{
oSheet.Cells[1, column] = col.HeaderText.Trim();
column++;
}
int rowCount = 2;
foreach (GridViewRow row in GridView1.Rows)
{
column = 1;
foreach (DataControlField col in GridView1.Columns)
{
oSheet.Cells[rowCount, column] = row.Cells[column-1].Text.Trim();
column++;
}
rowCount += 1;
}
// Resize the columns
oRange = oSheet.get_Range(oSheet.Cells[1, 1],
oSheet.Cells[rowCount, 3]);
oRange.EntireColumn.AutoFit();
oXL.Visible = true;
oXL.DisplayAlerts = false;
// Save the sheet and close
//oSheet = null;
//
//oRange = null;
//oWB.SaveAs("test.xls", Excel.XlFileFormat.xlWorkbookNormal,
// Missing.Value, Missing.Value, Missing.Value, Missing.Value,
// Excel.XlSaveAsAccessMode.xlExclusive,
// Missing.Value, Missing.Value, Missing.Value,
// Missing.Value, Missing.Value);
//oWB.Close(Missing.Value, Missing.Value, Missing.Value);
// oWB = null;
// oXL.Quit();
// Clean up
// NOTE: When in release mode, this does the trick
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
رو سيستم خودم كه ويندوز7 هست و افيسم هم 2007 هيچ مشكلي نيست
ولي وقتي پروژه رو بردم رو ويندوز سرور 2003 كار نكرد
حتي رو اون سيستم آفيس 2007 خودم رو هم نصب كردم ولي بازم كار نكرد
صفحه ارور جاوا اسكريپتي مي ده
ممنون مي شم راهنمايم كنيد