大家谁用过asp.net调用Excel打印?出现问题请教大家。

whblxl 2004-06-22 12:01:33
asp.net调用Excel打印,原文参照:
http://community.csdn.net/Expert/topic/2736/2736171.xml?temp=.2474787
我参照chenghua71(无字我心) 的文章进行了修改
myBook.Save();
myBook.Close(false, null,null);
myExcel.Quit();
改为
myBook.Saved=true;
myBook.PrintPreview(0);
myBook.Close(false, null,null);
准备在运行时进行打印预览(在delphi中就时这末做的)
运行后出现
尚未安装打印机。如需安装打印机,请指向 Windows“开始”菜单的“设置”,单击“打印机”,然后双击“添加打印机”。按照向导中的说明进行操作即可。
的错误信息,可是我明明装了打印机,为什末老时出现这个错误呢?
请大家帮我解决一下!
...全文
323 点赞 收藏 19
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
whblxl 2004-07-02
经过n天的搜索试验学习,最后决定用水晶报表,在这里谢谢xhunanpp(囨囚囨図),meixiaofeng(sean) ,goody9807() 三位老兄的在线技术支持,尤其是meixiaofeng(sean)
提供软件,再次深表谢意!
回复
xhunanpp 2004-06-27
to: "作  者: whblxl (流行雨) 信 誉 值: 83 "

别人敢回答吗, 你回答了,不结帖, 咋办呢?
回复
whblxl 2004-06-24
up
回复
goody9807 2004-06-23
我式了一下 报权限错
回复
whblxl 2004-06-23
up
回复
goody9807 2004-06-23
那个权限问题 我解决了

我看了许多代码
都不是在服务器端打印 而是生成一个
Excel文件再打开 用它内部的打印
string strFileName = Environment.CurrentDirectory+@"\template\template.tpl";
string strSaveFileName = Environment.CurrentDirectory+@"\excel\"+System.DateTime.Now.ToString().Replace(":","").Replace("-","").Replace(" ","")+@".xls";
Excel.Application ThisApplication = new Excel.ApplicationClass();
Excel.Workbook ThisWorkBook;
object missing = System.Reflection.Missing.Value;
try
{
//加载Excel模板文件
ThisWorkBook = ThisApplication.Workbooks.Open(strFileName,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);
Excel.Worksheet ThisSheet = (Excel.Worksheet)ThisWorkBook.Sheets[1];
ThisSheet.Cells[7,1] = dtEnd.ToShortDateString();
progressBar.Value = 30;
ThisApplication.Visible = false;
DataRow dr = dt.Rows[0];
for( int i=0; i<dt.Columns.Count;i++)
{
ThisSheet.Cells[7,i+2] = dr[i].ToString();
progressBar.Value +=1;
}
//更新数据后另存为新文件
ThisSheet.SaveAs(strSaveFileName,missing,missing,missing,missing,missing,missing,missing,missing);
}
catch{}
finally
{
ThisApplication.Quit();
ThisWorkBook = null;
ThisApplication = null;
//dt = null;
}
try
{ //打开刚才生成的Excel文件
Excel.Workbook NewWorkBook;
NewWorkBook = NewApplication.Workbooks.Open(strSaveFileName,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);
Excel.Worksheet NewSheet = (Excel.Worksheet)NewWorkBook.Sheets[1];
NewApplication.Visible = true;

//也可以使用System.Diagnostics.Process.Start(strSaveFileName);来打开新文件

}
回复
whblxl 2004-06-23
up
回复
whblxl 2004-06-23
再那里报错呀
回复
whblxl 2004-06-22
什末控件呀?
回复
wg88888 2004-06-22
使用控件打印。
回复
whblxl 2004-06-22
to anbeel(番薯好吃,但不宜多吃) 我是在本机配置的,本机安装了打印机了呀
to xaodoudou(我不想做潜水员) 我是想在客户端直接打印预览,而不是打开excel表
回复
xaodoudou 2004-06-22
我看了前面的贴子,其实我发现最好的办法就是在客户端显示一个下载对话框,让用户选择另存还是 打开,如果打开的话,让用户自己选择打印就行了。
参考代码:
Response.Clear();
Response.ContentType ="Content-Type: application/vnd.ms-excel";//发送 HTTP 头
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(filename,System.Text.Encoding.UTF8));
Response.Write(...........); Response.Flush();
Response.End();
回复
anbeel 2004-06-22
你想想,你这段代码可是在WEB SERVER上运行呀!要看WEB SERVER的打印机配置吧!
回复
xueqs 2004-06-22
可能打印机需要客户验证,先访问一下打印机所在的机器
回复
whblxl 2004-06-22
没人这末用过吗?
回复
whblxl 2004-06-22
up
回复
whblxl 2004-06-22
up
回复
whblxl 2004-06-22
没人能解决吗?我要绝望了,思归大虾那去了?
回复
whblxl 2004-06-22
up
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-06-22 12:01
社区公告
暂无公告