PDA

View Full Version : مشکل با اپن دیالوگ



sepide_68_91
دوشنبه 31 تیر 1392, 09: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);

sepide_68_91
دوشنبه 31 تیر 1392, 17:35 عصر
سلام
دوستان من از این کد برا انتقال اطلاعات از گرید به اکسل استفاده می کنم
مشکلی هم نداره
فقط میخوام بدون اینکه از کاربر اسم فایل رو بپرسه یعنی بدون اینکه
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);

واقعا کسی نمیدونه؟؟؟

pooria_googooli
دوشنبه 31 تیر 1392, 17:56 عصر
سه خط اول را بردار . دستور if را هم بردار . یعنی اینا :
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)
خط آخر هم به جای save.FileName اون مقدار دستی که می خواهی را بهش بده .