Экспорт данных Excel в приложении C# win
При экспорте данных файл Excel пуст! Я новичок и не могу решить проблему. Это мой код:
Microsoft.Office.Interop.Excel.Application Excel = new Microsoft.Office.Interop.Excel.Application();
Workbook wb = Excel.Workbooks.Add(XlSheetType.xlWorksheet);
Worksheet ws = (Worksheet)Excel.ActiveSheet;
Excel.Visible = true;
ws.Cells[1, 1] = "Row";
ws.Cells[1, 2] = "نام";
ws.Cells[1, 3] = "نام خانوادگی";
ws.Cells[1, 4] = "تاریخ ورود";
ws.Cells[1, 5] = "تاریخ خروج";
ws.Cells[1, 6] = "زمان ورود";
ws.Cells[1, 7] = "زمان خروج";
ws.Cells[1, 8] = "تاریخ فارسی";
for(int j=2;j<=dataGridView1.Rows.Count; j++)
{
for(int i=2;i<=5;i++)
{
ws.Cells[j, 1] = dataGridView1.Rows[j - 2].Cells[i - 1].Value;
}
}
Результат: текущий снимок Excel
1 ответ
Паям Хаяти! Вы не сохранили файл или рабочий лист, и поэтому не получили желаемый результат. Как пример, смотрите ниже:
public class Product
{
public string Code { get; set; }
public string Name { get; set; }
public double Price { get; set; }
}
Выше класс, чтобы продемонстрировать, как сохранить или экспортировать файл Excel. Теперь мы создадим коллекцию объектов следующим образом:
List<Product> products = new List<Product>()
{
new Product { Code = "1234", Name = "Denim Jeans", Price = 2000 },
new Product { Code = "123456", Name = "Denim Jacket", Price = 3000 },
new Product { Code = "12345678", Name = "Nike Sneakers", Price = 4000 }
};
Теперь в методе поместите следующий код: (Не забудьте добавить ссылку на Microsoft.Office.Interop.Excel.dll)
public void ExportToExcel(List<Product> products)
{
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Workbooks.Add(); //Create empty workbook
Microsoft.Office.Interop.Excel._Worksheet workSheet = excel.ActiveSheet; //Create Worksheet from active sheet
try
{
workSheet.Cells[1, "A"] = "Code"; //Set the header
workSheet.Cells[1, "B"] = "Name";
workSheet.Cells[1, "C"] = "Price";
int row = 2; //Start the row
foreach (Product items in products) //Iterate through a loop
{
workSheet.Cells[row, "A"] = items.Code;
workSheet.Cells[row, "B"] = items.Name;
workSheet.Cells[row, "C"] = string.Format("{0} Price", items.Price);
row++;
}
workSheet.Range["A1"].AutoFormat(Microsoft.Office.Interop.Excel.XlRangeAutoFormat.xlRangeAutoFormatClassic1);
string fileName = string.Format(@"{0}\DatainExcel.xlsx", Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory));
workSheet.SaveAs(fileName); //Save data in the file
MessageBox.Show(string.Format("The file '{0}' is saved successfully!", fileName));
}
catch (Exception exception)
{
MessageBox.Show("Exception", "Problem while saving Excel file!\n" + exception.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
excel.Quit(); //This is to quit excel
if (excel != null)
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
if (workSheet != null)
System.Runtime.InteropServices.Marshal.ReleaseComObject(workSheet);
excel = null;
workSheet = null;
GC.Collect(); //This is to force garbage cleaning
}
}
И вы сделали. Попробуй.