sepide_68_91
دوشنبه 31 تیر 1392, 10:34 صبح
سلام
دوستان من از این کد برا انتقال اطلاعات از گرید به اکسل استفاده می کنم
مشکلی هم نداره
فقط میخوام بدون اینکه از کاربر اسم فایل رو بپرسه یعنی بدون اینکه
opendialog باز بشه خودش خودکار موقع زدن کلید مربوطه با اجرای کدهای فوق در یک فایل اکسل ذخیره کنه و اگر اون فایل قبلا وجود داشت با یه نام دیگه ذخیره کنه و یا replace کنه
ممنون میشم از راهنمایی تون
SaveFileDialog save = new SaveFileDialog();
save.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolde r.Personal);
save.Filter = " |*.xls;*.xlsx";
// DialogFile.Filter = "<span class="highlight">Excel</span> Worksheets |*.xls;*.xlsx";
if (save.ShowDialog(this) == DialogResult.OK)
{
CultureInfo Oldci = Thread.CurrentThread.CurrentCulture;
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us");
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook workbook = app.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel.Worksheet worksheet = null;
app.Visible = true;
worksheet = (Worksheet)workbook.Sheets["Sheet1"];
worksheet = (Worksheet)workbook.ActiveSheet;
worksheet.Name = "Exported from gridview";
// Set Format Cell:
((Range)worksheet.Cells).get_Range("A1", "G1");
((Range)worksheet.Cells).EntireRow.AutoFit();
((Range)worksheet.Cells[1, 1]).EntireColumn.NumberFormat = "@";
for (int i = 1; i < dgv.Columns.Count + 1; i++)
{
worksheet.Cells[1, i] = dgv.Columns[i - 1].HeaderText;
}
for (int i = 0; i < dgv.Rows.Count - 1; i++)
for (int j = 0; j < dgv.Columns.Count; j++)
worksheet.Cells[i + 2, j + 1] = "";
else
worksheet.Cells[i + 2, j + 1] = dgv.Rows[i].Cells[j].Value.ToString();
workbook.SaveAs(save.FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode. xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
دوستان من از این کد برا انتقال اطلاعات از گرید به اکسل استفاده می کنم
مشکلی هم نداره
فقط میخوام بدون اینکه از کاربر اسم فایل رو بپرسه یعنی بدون اینکه
opendialog باز بشه خودش خودکار موقع زدن کلید مربوطه با اجرای کدهای فوق در یک فایل اکسل ذخیره کنه و اگر اون فایل قبلا وجود داشت با یه نام دیگه ذخیره کنه و یا replace کنه
ممنون میشم از راهنمایی تون
SaveFileDialog save = new SaveFileDialog();
save.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolde r.Personal);
save.Filter = " |*.xls;*.xlsx";
// DialogFile.Filter = "<span class="highlight">Excel</span> Worksheets |*.xls;*.xlsx";
if (save.ShowDialog(this) == DialogResult.OK)
{
CultureInfo Oldci = Thread.CurrentThread.CurrentCulture;
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us");
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook workbook = app.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel.Worksheet worksheet = null;
app.Visible = true;
worksheet = (Worksheet)workbook.Sheets["Sheet1"];
worksheet = (Worksheet)workbook.ActiveSheet;
worksheet.Name = "Exported from gridview";
// Set Format Cell:
((Range)worksheet.Cells).get_Range("A1", "G1");
((Range)worksheet.Cells).EntireRow.AutoFit();
((Range)worksheet.Cells[1, 1]).EntireColumn.NumberFormat = "@";
for (int i = 1; i < dgv.Columns.Count + 1; i++)
{
worksheet.Cells[1, i] = dgv.Columns[i - 1].HeaderText;
}
for (int i = 0; i < dgv.Rows.Count - 1; i++)
for (int j = 0; j < dgv.Columns.Count; j++)
worksheet.Cells[i + 2, j + 1] = "";
else
worksheet.Cells[i + 2, j + 1] = dgv.Rows[i].Cells[j].Value.ToString();
workbook.SaveAs(save.FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode. xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);