0
ارسال اطلاعات دیتاگریدویو به اکسل
باسلام خدمت دوستان عزیز.
ما برای انتقال اطلاعات دیتاگریدویو به اکسل از این کد استفاده کردیم:
Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
// creating new WorkBook within Excel application
Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
// creating new Excelsheet in workbook
Microsoft.Office.Interop.Excel._Worksheet worksheet1 = null;
Microsoft.Office.Interop.Excel._Worksheet worksheet2 = null;
Microsoft.Office.Interop.Excel._Worksheet worksheet3 = null;
Microsoft.Office.Interop.Excel._Worksheet worksheet4 = null;
Microsoft.Office.Interop.Excel._Worksheet worksheet5 = null;
// see the excel sheet behind the program
app.Visible = true;
// get the reference of first sheet. By default its name is Sheet1.
// store its reference to worksheet
worksheet1 = workbook.Sheets["sheet1"];
worksheet1 = workbook.ActiveSheet;
worksheet1.Name ="فروش بالاتر از حد" ;
worksheet2 = workbook.Sheets["sheet2"];
worksheet2 = workbook.ActiveSheet;
worksheet2.Name = "فروش پایین تر از حد";
worksheet3 = workbook.Sheets["sheet3"];
worksheet3 = workbook.ActiveSheet;
worksheet3.Name ="خرید بالاتر از حد" ;
_* //worksheet4 = workbook.Sheets["sheet4"];
worksheet4 = workbook.ActiveSheet;
//worksheet4.Name = "خرید پایین تر از حد";
//worksheet5 = workbook.Sheets["sheet5"];
worksheet5 = workbook.ActiveSheet;
//worksheet5.Name = "امتناع";_*
//changing the name of active sheet
try
{
//dgsaleup
// storing header part in Excel
for (int i = 1; i < dgsaleup.Columns.Count + 1; i++)
{
worksheet1.Cells[1, i] = dgsaleup.Columns[i - 1].HeaderText;
}
// storing Each row and column value to excel sheet
for (int i = 0; i < dgsaleup.Rows.Count-1; i++)
{
for (int j = 0; j < dgsaleup.Columns.Count; j++)
{
worksheet1.Cells[i + 2, j + 1] = dgsaleup.Rows[i].Cells[j].Value.ToString();
}
}
//dgsaledown
// storing header part in Excel
for (int a = 1; a < dgsaledown.Columns.Count + 1; a++)
{
worksheet2.Cells[1, a] = dgsaledown.Columns[a - 1].HeaderText;
}
// storing Each row and column value to excel sheet
for (int a = 0; a < dgsaledown.Rows.Count-1; a++)
{
for (int b = 0; b < dgsaledown.Columns.Count; b++)
{
worksheet2.Cells[a + 2, b + 1] = dgsaledown.Rows[a].Cells[b].Value.ToString();
}
}
//dgbuyup
// storing header part in Excel
for (int i = 1; i < dgbuyup.Columns.Count + 1; i++)
{
worksheet3.Cells[1, i] = dgbuyup.Columns[i - 1].HeaderText;
}
// storing Each row and column value to excel sheet
for (int i = 0; i < dgbuyup.Rows.Count-1; i++)
{
for (int j = 0; j < dgbuyup.Columns.Count; j++)
{
worksheet3.Cells[i + 2, j + 1] = dgbuyup.Rows[i].Cells[j].Value.ToString();
}
}
////dgbuydown
//// storing header part in Excel
//for (int i = 1; i < dgbuydown.Columns.Count + 1; i++)
//{
// worksheet4.Cells[1, i] = dgbuydown.Columns[i - 1].HeaderText;
//}
//// storing Each row and column value to excel sheet
//for (int i = 0; i < dgbuydown.Rows.Count; i++)
//{
// for (int j = 0; j < dgbuydown.Columns.Count; j++)
// {
// worksheet4.Cells[i + 2, j + 1] = dgbuydown.Rows[i].Cells[j].Value.ToString();
// }
//}
////dataGridView5
//// storing header part in Excel
//for (int i = 1; i < dataGridView5.Columns.Count + 1; i++)
//{
// worksheet5.Cells[1, i] = dataGridView5.Columns[i - 1].HeaderText;
//}
//// storing Each row and column value to excel sheet
//for (int i = 0; i < dataGridView5.Rows.Count; i++)
//{
// for (int j = 0; j < dataGridView5.Columns.Count; j++)
// {
// worksheet5.Cells[i + 2, j + 1] = dataGridView5.Rows[i].Cells[j].Value.ToString();
// }
//}
// save the application
workbook.SaveAs("I:\\output.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
// Exit from the application
app.Quit();
}
مشکل اینجاست که موقع ایجاد worksheet4 و worksheet5 خطا داره ولی 3 تای قبلی رو ایجاد میکنه. موقع پر کردن شیت ها هم عملیات رو انجام میده ولی در آخر که داده ها رو نشون میده، فقط تو یک شیت، اونم شیت 3 که آخرین حلقه هست رو نشون میده.
لطفا راهنمایی بفرمایید