PDA

View Full Version : آموزش: گرفتن خروجی Excel از داده‏های کنترل ListView



meysamkarimi
چهارشنبه 01 مهر 1388, 22:47 عصر
ابتدا فضای نام System.IO را به برنامه اضافه کنید.
حال متد زیر را در برنامه فراخوانی کنید تنها کافی است نام کنترل ListView را به متد بفرستید. البته باید خاصیت View کنترل لیست‏ویو در حالت Details باشد.


void ExportToExcel(ListView lstView)
{
SaveFileDialog DlgSaveExcel = new SaveFileDialog();
DlgSaveExcel.DefaultExt = "csv";
DlgSaveExcel.Filter = "csv files (*.csv)|*.csv";

if (DlgSaveExcel.ShowDialog() == DialogResult.OK)
{
Stream myStream;
byte[] info = null;
string ExportExcel = string.Empty;

if ((myStream = DlgSaveExcel.OpenFile()) != null)
{
foreach (ColumnHeader Curr in lstView.Columns)
{
ExportExcel += Curr.Text.Replace(";", "") + ";";
}
ExportExcel += "\n";

foreach (ListViewItem Item in lstView.Items)
{
foreach (ListViewItem.ListViewSubItem SubItem in Item.SubItems)
{
ExportExcel += SubItem.Text.Replace(";", "") + ";";
}
ExportExcel += "\n";
}

info = new UTF8Encoding(true).GetBytes(ExportExcel);
myStream.Write(info, 0, info.Length);
myStream.Close();
}
}
}

siavash427
جمعه 01 مرداد 1389, 11:07 صبح
اولا که دستتون درد نکنه کار جالبیه.
دوما اینکه با توجه به اینکه شما در کد برنامه اونو به یونیکد تبدیل کردین ولی وقتی خروجی رو تو اکسل میبینم. همش اچق وجقه.
ممنون میشم اگه این مشکل رو رفع کنین.

misoft.ir
شنبه 02 مرداد 1389, 09:50 صبح
سلام
این روش بدی نیست . اما چرا از روشی که خود میکروسافت گفته پیش نمیروید؟
من این یکی دو روزه دارم روی همین موضوع کار میکنم. خیلی امکانات بهتری هم در دستتون هست.مانند تنظیم فونت ، رنگ ، رسم نمودار و ... ;
یا اینکه با استفاده از ADO.NET این کار رو انجام بدی(خواندن و نوشتن).
لینک هایی رو که من استفاده کردم:
http://support.microsoft.com/kb/302084
http://support.microsoft.com/kb/316934