У меня есть функция, которая экспортирует данные набора данных в таблицу Excel.он отлично работает на локальной машине, но когда я загружаю этот код на сервер, он не работает ....
код файла:
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.Drawing;
using System.ComponentModel;
using System.Windows.Forms;
string FilePath = ConfigurationManager.AppSettings["dataqueryfile"]
+ "dataquery_" + DateTime.Now.ToString("yyyyMMddhhmm") ;
Excel.Application oXL;
Excel.Workbook oWB;
Excel.Worksheet oSheet;
Excel.Range oRange;
// Start Excel and get Application object.
oXL = new Excel.Application();
// Set some properties
oXL.Visible = true;
oXL.DisplayAlerts = false;
// Get a new workbook.
oWB = oXL.Workbooks.Add(Missing.Value);
// Get the active sheet
oSheet = (Excel.Worksheet)oWB.ActiveSheet;
oSheet.Name = "DataQuery";
// Process the DataTable
DataTable dt = ds.Tables[0];
int rowCount = 1;
foreach (DataRow dr in dt.Rows)
{
rowCount += 1;
for (int i = 1; i < dt.Columns.Count + 1; i++)
{
// Add the header the first time through
if (rowCount == 2)
{
oSheet.Cells[1, i] = dt.Columns[i - 1].ColumnName;
}
oSheet.Cells[rowCount, i] = dr[i - 1].ToString();
}
}
// Resize the columns
oRange = oSheet.get_Range(oSheet.Cells[1, 1],
oSheet.Cells[rowCount, dt.Columns.Count]);
oRange.EntireColumn.AutoFit();
// Save the sheet and close
oSheet = null;
oRange = null;
oWB.SaveAs(FilePath + ".xls", Excel.XlFileFormat.xlWorkbookNormal,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Excel.XlSaveAsAccessMode.xlExclusive,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value);
oWB.Close(Missing.Value, Missing.Value, Missing.Value);
oWB = null;
oXL.Quit();
// Clean up
// NOTE: When in release mode, this does the trick
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
файл веб-конфигурации:
<add key="dataqueryfile" value="C:\navin\"/>
<add assembly="Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/>
<add assembly="office, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/>
<add assembly="Microsoft.Vbe.Interop, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/>
<add assembly="stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
отредактировано:
da = new SqlDataAdapter();
conn.Open();
da.SelectCommand = command;
da.Fill(ds);
ds.WriteXml("c:\\Customers.xml");
когда я выполняю решение из локальной системы, значения набора данных копируются в файл xml вместе с заголовком столбца .. затем я переместил файлы в виртуальный каталог в папке inetpub,через диспетчер iis я просмотрел виртуальный каталог и запустил ту же страницу, XML-файл сохраняется по тому же пути, но без заголовка столбца :( .. затем я открыл эту же страницу с другого компьютера через URL (через IP-адрес inetrnal)но XML-файл не сохраняется на машине .. Пожалуйста, помогите мне ..
спасибо n *
T.Navin