ผมเขียน Export Excel ครับ แล้วมันออกยังงี้ เครื่องผมไม่เป็นไร แต่เครื่อง user เป็นครับ
ผมเขียน Export Excel ครับ แล้วมันออกยังงี้ เครื่องผมไม่เป็นไร แต่เครื่อง user เป็นครับ
มัน Error ว่า
System.Runtime.InteropServices.COMException: Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))
at microsoft.ofice.Interop.Excel.workbooks.add(objecttemplet)
at STK.F_ViewData.BTExport_Click object...........
งี้อะครับมีวิธีแก้งัยอะครับ คือว่า เครื่อง user จำเป็น ต้องใช้ office 2007 แล้วตัวโคสผมเขียนแบบนี้ครับ
try
{
String DateS = "";
if (radioButton2.Checked == true)
{
DateS = dateTimePicker1.Text;
}
else
{
DateS = CMounth.Text;
}
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
int i = 0;
int j = 0;
xlWorkSheet.Cells[1, 1] = "รายงานวันที่: " + DateS;
xlWorkSheet.Cells[2, 1] = "รหัสโรงงาน";
xlWorkSheet.Cells[2, 2] = "รหัสสินค้า";
xlWorkSheet.Cells[2, 3] = "ชื่อสินค้า";
xlWorkSheet.Cells[2, 4] = "ยอดยกมา";
xlWorkSheet.Cells[2, 5] = "จ่ายสินค้า";
xlWorkSheet.Cells[2, 6] = "รับสินค้า";
xlWorkSheet.Cells[2, 7] = "รวมสุทธิ";
for (i = 0; i <= dataGridView1.RowCount - 1; i++)
{
for (j = 0; j <= dataGridView1.ColumnCount - 1; j++)
{
DataGridViewCell cell = dataGridView1[j, i];
xlWorkSheet.Cells[i + 3, j + 1] = cell.Value;
}
}
xlWorkBook.SaveAs("รายงานวัสดุ.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
MessageBox.Show("สร้างรายงานเรียบร้อย");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}Tag : .NET, C#
Date :
2010-09-13 16:47:12
By :
pacus
View :
1748
Reply :
5
เป็น WinApp นะครับ ลืมบอก
Date :
2010-09-13 16:47:42
By :
pacus
พี่วินครับ แล้วต้องใส่
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US")
ไว้ตรงใหนอะครับ คือว่า winapp ผมเพิ่งจะทำอะคับ
ทำแต่เว็บ อิอิ
Date :
2010-09-13 16:55:43
By :
pacus
ใน code น่ะครับ
Date :
2010-09-13 16:59:56
By :
webmaster
ขอบคุณคัรบผม
Date :
2010-09-13 17:06:58
By :
pacus
Load balance : Server 05