PDA

View Full Version : سوال: خروجی گرفتن اکسل از سی شارپ ویژوال 2008



samsami
پنج شنبه 25 خرداد 1396, 00:22 صبح
با سلام ....

یک دیتا گرید ویو داریم میخواستم اون رو به خروجی اکسل تبدیل کنم ...

متاسفانه هر چی می گردم خروجی برای ویژوال 2008 گیرم نمیاد همش 2010 به بالاست یعنی دات نت 4 به بالا ولی من برای دات نت 3.5 می خوام ...

ممنون میشم از پاسخ شما...

_behnam_
پنج شنبه 25 خرداد 1396, 01:24 صبح
سلام.
این صفحه رو ببینید کارتون میشه؟
تست نکردم ، خودتون اینکارو انتجام بدید
https://www.codeproject.com/Questions/458313/Import-and-Export-Data-From-Excel-to-DataTable-in

mrali.jalali
پنج شنبه 25 خرداد 1396, 08:59 صبح
سلام.
این صفحه رو ببینید کارتون میشه؟
تست نکردم ، خودتون اینکارو انتجام بدید
https://www.codeproject.com/Questions/458313/Import-and-Export-Data-From-Excel-to-DataTable-in


این نمونه اطلاعات گرید رو می بره . فکر کنم ایشون مثل من نیازشون به ارسال خود گرید باشه یعنی اگر کاربر گروه بندی یا فیلتر کرد به همون حالت بره . من مشکلی با ورژن دات نت ندارم .

samiasoft
پنج شنبه 25 خرداد 1396, 13:18 عصر
بهترین راه برای خروجی گرفتن استفاده از کامپونت های زیر می باشد :

Elerium Excel

Kellerman Excel Reports

SpreadsheetGear

Atp Ultimate Doc Expert

رامین مرادی
پنج شنبه 25 خرداد 1396, 13:22 عصر
شما میتونید از قبل تغییراتی مانند مرتب سازی رو روی یک دیتا تیبل انجام بدید بعد توی گرید نشون بدید و وقتی میخواید ارسال کنید برای خروجی همون دیتا تیبل رو ارسال کنید تا مرتب سازی و غیره هم ثابت بمونه. به نظرم استفاده از دیتا سورس گرید در این گونه موارد درست نیست.

_behnam_
جمعه 26 خرداد 1396, 08:43 صبح
این نمونه اطلاعات گرید رو می بره . فکر کنم ایشون مثل من نیازشون به ارسال خود گرید باشه یعنی اگر کاربر گروه بندی یا فیلتر کرد به همون حالت بره . من مشکلی با ورژن دات نت ندارم .
دوست عزیز این نمونه اطلاعات DataTable رو به اکسل انتقال میده.
یک DataTable میتونه اطلاعات خودشو به DataGridView انتقال بده یا اینکه اطلاعات DataGridView رو درون خودش قرار بده.
شما حتی اگه یک DataGridView رو روی فرم قرار بدید و به صورت دستی بهش ستون و ردیف اضافه کنید بدون بانک اطلاعاتی ، امکان تبدیل به DataTable هست.
پس میتونید اطلاعات گرید رو به دیتا تیبل و از دیتاتیبل به اکسل نتقال بدید.

public DataTable GetContentAsDataTable(bool IgnoreHideColumns = false)
{
try
{
if (dgv.ColumnCount == 0) return null;
DataTable dtSource = new DataTable();
foreach (DataGridViewColumn col in dgv.Columns)
{
if (IgnoreHideColumns & !col.Visible) continue;
if (col.Name == string.Empty) continue;
dtSource.Columns.Add(col.Name );
dtSource.Columns[col.Name].Caption = col.HeaderText;
}
if (dtSource.Columns.Count == 0) return null;
foreach (DataGridViewRow row in dgv.Rows)
{
DataRow drNewRow = dtSource.NewRow();
foreach (DataColumn col in dtSource.Columns)
{
drNewRow[col.ColumnName] = row.Cells[col.ColumnName].Value;
}
dtSource.Rows.Add(drNewRow);
}
return dtSource;
}
catch { return null; }
}