PDA

View Full Version : خروجی اکسل از datagridview یا datatable



mehdi0020
شنبه 27 اسفند 1401, 14:40 عصر
سلام
میخواهم از دیتا گرید ویو که با استفاذه از دیتا تیبل پر میشه خروجی اکسل یا xml با سرعت بالا داشته باشم

Mahmoud.Afrad
دوشنبه 29 اسفند 1401, 02:51 صبح
.
.
DataTable.WriteXml Method (System.Data) | Microsoft Learn (https://learn.microsoft.com/en-us/dotnet/api/system.data.datatable.writexml)

MasoudAdmin
سه شنبه 01 فروردین 1402, 14:01 عصر
سلام
من از کامپوننت Telerik RadGridView استفاده می کنم.واسه خروجی به اکسل باید اول این رو اضافه کنید:


using Telerik.WinControls.Export;


بعدش این کد رو واسه کلید خروجی به اکسل استفاده کردم:



var saveFileDialog = new SaveFileDialog()
{
FileName = "PartList" + "_" + DateTime.Now.Hour.ToString("00") + "_" + DateTime.Now.Minute.ToString("00") + "_" + DateTime.Now.Second.ToString("00"),
DefaultExt = "*.xlsx",
Filter = "Excel Files (*.xlsx)|*.xlsx",
InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolde r.MyDocuments)
};
string SaveDest = saveFileDialog.InitialDirectory + "\\" + saveFileDialog.FileName + saveFileDialog;
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
GridViewSpreadExport spreadExporter = new GridViewSpreadExport(this.radGridListPart);
SpreadExportRenderer exportRenderer = new SpreadExportRenderer();
spreadExporter.RunExport(SaveDest, exportRenderer);
MessageBox.Show("فایل اکسل تهیه و در مسیر " + saveFileDialog.InitialDirectory.ToString() + " ذخیره گردید");
}

mehdi0020
سه شنبه 08 فروردین 1402, 11:07 صبح
ممنون از پاسخ که دادید
متاسفانه در شبکه ای که کار میکنم استفاده از این کامپوننت ممکن نیست

پرستو پارسایی
جمعه 25 فروردین 1402, 23:36 عصر
using System.Data.SqlClient;

namespace ExportToExcelExample
{
class Program
{
static void Main(string[] args)
{
string connectionString = "Data Source=(local);Initial Catalog=TestNo1ForLogin";


string query = "SELECT * FROM MyTable";


using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection))
{
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);


using (XLWorkbook workbook = new XLWorkbook())
{
workbook.Worksheets.Add(dataTable, "Sheet1");
workbook.SaveAs("output.xlsx");
}
}
}
}
}
}


یا این کد


using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Xml.Serialization;


namespace ExportToXmlExample
{
class Program
{
static void Main(string[] args)
{
string connectionString = "Data Source=(local);Initial Catalog=TestNo1ForLogin";


string query = "SELECT * FROM MyTable";


using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection))
{
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);


XmlSerializer serializer = new XmlSerializer(typeof(DataTable));
using (TextWriter writer = new StreamWriter("output.xml"))
{
serializer.Serialize(writer, dataTable);
}
}
}
}
}
}

هر دو روش بالا با سرعت بسیار بالا عمل می کنند و قابلیت گسترش و تنظیمات بیشتری نسبت به روش های سنتی اکسل و xml دارند