Generering af Excel virker ikke på windows 2003-server
HejNedenstående kode virker fint lokalt på min maskine, men ikke på webserveren, Windows 2003 -server.
Efter at have googlet mig frem kunne jeg se at der ikke var anden vej udenom end at spille en licens på at
installere office-pakken på serveren. Efter dette var gjort fik jeg fejlen:
Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to
the following error: 80070005
Jeg gave efterfølgende rettigheder, som beskrevet i dette link:
http://blog.crowe.co.nz/archive/2006/03/02/589.aspx
Efterfølgende sker der nu nada, når jeg trykker på LinkButtonExcel-knappen.
Nogle forslag?
Kode:
using System.Reflection;
using Excel = Microsoft.Office.Interop.Excel;
protected void LinkButtonExcel_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook xlWorkBook = null;
Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet = null;
xlWorkBook = new Microsoft.Office.Interop.Excel.Application().Workbooks.Add(Missing.Value);
xlWorkBook.Application.Visible = true;
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.ActiveSheet;
xlWorkSheet.Cells[1, 1] = "Date";
xlWorkSheet.Cells[1, 2] = "SP-No";
xlWorkSheet.Cells[1, 3] = "PickUpAddress";
xlWorkSheet.Cells[1, 4] = "SP-OrderNo";
xlWorkSheet.Cells[1, 5] = "SP-reference";
xlWorkSheet.Cells[1, 6] = "Weight";
xlWorkSheet.Cells[1, 7] = "WorkOrderNo"; // theRow["Ordreref."]
xlWorkSheet.Cells[1, 8] = "MaterialNo";
xlWorkSheet.Cells[1, 9] = "Description";
xlWorkSheet.Cells[1, 10] = "SerialNo";
xlWorkSheet.Cells[1, 11] = "ReturnNo";
xlWorkSheet.get_Range("A1", "K1").Font.Bold = true;
xlWorkSheet.get_Range("A1", "K1").Interior.ColorIndex = 44;
// Danish notation
xlWorkSheet.get_Range("A2", "A200").Cells.NumberFormat = "åååå-MM-DD";
// English notation
// xlWorkSheet.get_Range("A2", "A200").Cells.NumberFormat = "yyyy-MM-DD";
xlWorkSheet.get_Range("G2", "G200").Cells.NumberFormat = "#"; // WorkOrdernumber Cells[i, 7]
DataSet dataset = GetPartReturnsByDatePhysicallyReturned(Convert.ToDateTime(Convert.ToDateTime(Date.Text)));
int i = 2;
foreach (DataRow theRow in dataset.Tables[0].Rows)
{
DateTime dt = Convert.ToDateTime(theRow["Date"]);
xlWorkSheet.Cells[i, 1] = theRow["Date"];// dt.ToString("yyyy/MM/dd").ToString();
xlWorkSheet.Cells[i, 2] = "0011291297";// theRow[""];
xlWorkSheet.Cells[i, 3] = deliveryadress;
xlWorkSheet.Cells[i, 4] = theRow["Ordrenr."];
xlWorkSheet.Cells[i, 5] = theRow["SP-reference"];
xlWorkSheet.Cells[i, 7] = theRow["Ordreref."]; // WorkOrdernumber - Vendorreferencenumber
xlWorkSheet.Cells[i, 8] = theRow["Mat.nr."];
xlWorkSheet.Cells[i, 9] = theRow["Varebesk."];
xlWorkSheet.Cells[i, 10] = theRow["Serienr."];
xlWorkSheet.Cells[i, 11] = theRow["Returnr."];
i++;
}
// Autofit the columns
xlWorkSheet.Columns.AutoFit();
}