PDA

View Full Version : سوال: نوشتن در چند sheet در Excel (بیش از 3 sheet)



samanff2000
سه شنبه 24 آذر 1394, 16:08 عصر
با سلام خدمت دوستان
یک برنامه دارم که باید اطلاعات رو در اکسل ذخیره کنم برنامه ای که نوشتم اطلاعات رو از گرید میخونه و در اکسل در یک شیت میاره حالا باید همه صفحه ها رو در قالب یک فایل ایجاد کنم (در شیت ها) تو برنامه تا شیت3 که وجود داره رو نوشتم و کار میکنه اما به شیت 4 که میرسه خطا میده لطفا بفرمایید که چطور باید شیت رو اضافه کنم با تشکر
for (int k = 1; k < comboBox1.Items.Count; k++)
{
worksheet = (Worksheet)workbook.Sheets["Sheet" + k.ToString()];


worksheet = (Worksheet)workbook.ActiveSheet;


worksheet.Name = comboBox1.Items[k - 1].ToString();


// storing header part in <span class="highlight">Excel</span>
for (int i = 1; i < dataGridView1.Columns.Count + 1; i++)
{
worksheet.Cells[1, i] = dataGridView1.Columns[i - 1].HeaderText;
}


for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString();
}
}
}

SaveFileDialog sdf = new SaveFileDialog();
sdf.Filter = "Excel Document(*.xls)|*.xls";
sdf.FileName = "Export";


if (sdf.ShowDialog() == DialogResult.OK)
{
workbook.SaveAs(sdf.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);


}
else
{
}

app.Quit();

elec60
چهارشنبه 25 آذر 1394, 14:09 عصر
دليل خطا اينه که By default تعداد sheet ها 3 تاست
شما بايد با متد Add از Worksheets موجود در Workbooks شيت بسازی(به تعداد مورد نياز منهای 3، چون خودش 3 تا داره که البته میتونی خاصيتی رو True کنی که همين 3 تا رو هم نداشته باشه و به تعداد مورد نيازت Add کنی)

samanff2000
چهارشنبه 25 آذر 1394, 16:05 عصر
با سلام اگه ممکنه برام نمونه کدش رو قرار بدید چون خودم این کار رو میکنم اما بازم زمانی که نام Sheet4 رو میزنم خطا میده با تشکر از شما