在做数据导出到excel时(c#),在本机上能导出表格,但是移到服务器上就没有反应?

引用了 using Excel = Microsoft.Office.Interop.Excel;
核心代码如下:
protected void BtnJieKou_Click(object sender, EventArgs e)

{
//导出日报

ToExcel2("接口数据");

}
public void ToExcel2(string strTitle)
{

string strSql = "select * from " + strBiaoMing;

DataTable dtZuoYeBan = sql.readsql(strSql);

int rowCount = dtZuoYeBan.Rows.Count;//取出数据表总行数

const int columnCount = 30;//报表总列数

Excel.Application excelApp = new Excel.ApplicationClass();

Excel.Workbook workBook = excelApp.Workbooks.Add(true);

Excel.Worksheet worksheet = workBook.ActiveSheet as Excel.Worksheet;

//*************************************设置表头**************************************************

省略。。。。

//*************************************填充单元格*************************************************
省略。。。。
//设置Excel可见
excelApp.Visible = true;
}

建议换用三方组件NPOI。
你现在导出的Excel是调用系统安装的Excel的组件。倘若服务器上没有安装Excel或安装的Excel版本不对,都会导致导出失败。
再者,你放到服务器上,导出Excel后需要解决杀进程的问题,因为每次导出Excel时候,都会启动一个Excel.exe进程,导出结束后该进程不能自动关闭,需要写代码杀掉它,很麻烦。如果你做的是WebForm,还要解决调用安全问题。
所以,我建议用三方组件NPOI来实现导出Excel,它的优点是不需要考虑上面说的问题,且导出速度快。
NPOI的使用需要另行百度。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-07
可能是服务器上没有安装office或者版本不对。追问

可能是这样,我自己电脑上是2007的,服务器上是2013的,可是这样有什么办法呢? 我需要改哪里才能行呢?

追答

安装了2013也可以的。因为2013和2007的格式是一致的。
那么再看看是不是framework的原因了。是不是没有安装。

相似回答