PDA

View Full Version : سوال: Comexception in Exporting Data to Excel from sql in C#.net



SMirzakarimi
شنبه 06 شهریور 1389, 14:36 عصر
با سلام
من قطعه کد زیر رو برای تبدیل اطلاعات datatable از sql به Excel استفاده کردم



#region
try
{
SqlConnection conn = newSqlConnection("Integrated Security=yes;Initial Catalog=Emp;Data Source=(local)");
conn.Open();
SqlCommand command = newSqlCommand("select * from emp", conn);
SqlDataAdapter adapter = newSqlDataAdapter(command);
System.Data.DataTable dt = new System.Data.DataTable();
adapter.Fill(dt);

Microsoft.Office.Interop.Excel.ApplicationClass excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
excel.Application.Workbooks.Add(true);
System.Data.DataTable table = dt;
int ColumnIndex = 0;
foreach (System.Data.DataColumn col in table.Columns)
{
ColumnIndex++;
excel.Cells[1, ColumnIndex] = col.ColumnName;
} int rowIndex = 0;
foreach (DataRow row in table.Rows)
{
rowIndex++;
ColumnIndex = 0; foreach (DataColumn col in table.Columns)
{
ColumnIndex++;
excel.Cells[rowIndex + 1, ColumnIndex] = row[col.ColumnName];
}
}
excel.Visible = true;
Worksheet worksheet = (Worksheet)excel.ActiveSheet;
worksheet.Activate();

}
catch (XmlException exml)
{
// catch an xmlexception errors
MessageBox.Show(exml.Message);
}
#endregion



اما پیغام خطا میده
COMException
Old format or Invalid type library


چون اولین باره میخوام این کار رو بکنم
نمیدونم این error واسه چیه
میشه کمک کنید؟
البته قبلا توی refrence ها قبلا excel رو add کردم

SMirzakarimi
یک شنبه 07 شهریور 1389, 10:36 صبح
خودم فهمیدم چرا error میده
چون با زبان انگلیسی کار نمیکنم
چون تو regional and setting زبانم انگلیسی نیست
و البته نمیخوام هم باشه
حالا کسی راه حلشو میدونه؟

SMirzakarimi
سه شنبه 09 شهریور 1389, 11:36 صبح
برای رفع مشکل Microsoft office Communicator و سپس microsoft office 2007 multilingual user interface pack رو نصب کردم اما باز همون مشکلو دارم
خواهش میکنم اگه کسی بلده کمک کنه
کارم بدجوری گیر کرده

meisam1366
جمعه 21 مرداد 1390, 15:16 عصر
سلام!

قبل از

Microsoft.Office.Interop.Excel.ApplicationClass excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
excel.Application.Workbooks.Add(true);


کد زیر رو اضافه کن:

System.Globalization.CultureInfo Oldci = System.Threading.Thread.CurrentThread.CurrentCultu re;
System.Threading.Thread.CurrentThread.CurrentCultu re = new System.Globalization.CultureInfo("en-us");

منبع:
http://stackoverflow.com/questions/5180713/old-format-or-invalid-type-library-exception-from-hresult-0x80028018-type-e-i
http://www.hyperneed.com/ShowSearchAnswers.aspx?searchstring=&category=Programming&questionid=5afa16f5-653a-4f2e-afcb-c83dce5bc4e4