【发布时间】:2011-09-02 11:19:13
【问题描述】:
我具有将数据集的数据导出到 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(通过 inetrnal ip 地址)从其他机器上打开了相同的页面,但是 xml 文件没有保存到机器上。 请帮帮我..
谢谢你
T.纳文
【问题讨论】:
-
您忘记发布当应用程序“不工作”时收到的错误消息/堆栈跟踪/日志文件条目。
-
我没有收到任何错误消息...文件没有下载到指定的文件夹中...当我从本地计算机运行时,它被保存在文件夹中..
-
除非您能提供一些信息,例如错误消息或堆栈跟踪,否则我认为您不会得到任何有用的答案。
-
@mdm - 我们遇到了类似的问题 - 没有异常,没有错误日志,什么都没有 - 只是文件丢失了......所以我认为这个问题是有效的......
-
@veljkoz 你是怎么解决这个问题的。请帮帮我
标签: c# excel automation