c# 只安装WPF环境 导出excel表格 问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 只安装WPF环境 导出excel表格 问题相关的知识,希望对你有一定的参考价值。

有些人可能只安装了wpf环境 没有安装office,以前我添加了金山的ET引用,具体引用叫什么不记得了,使用类似导出office的excel的代码修改成功了,可以导出,以前我写的程序是好用的,后来不知道什么时候 编译可以通过但是在导出excel时会报错“没有注册的类别”,我重新添加引用也不行。
我感觉问题可能是wpf自动更新了,把以前的东西修改了造成的,所以想问问有没有人跟我遇到了同样的问题,又是怎么解决的。
我的目的就是在 只安装WPF环境下 能导出EXCEL
或者能不能做到 什么环境也不安装(office和WPF),也可以导出EXCEL文件,只要文件生成了其他的就不需要关心了

你好
你应该安装的是WPF程序。WPF程序需要.net framework环境。在.net framework环境下,你可以开发WPF程序,引用office或者金山的的Excel组件,进行EXCEL的操作。这种方法,需要安装office(金山没有用过)。

可以使用第三方的组件进行开发,这样就不依赖office。

比如,在.net framework环境下,使用C#进行WPF或Winform程序开发,可以使用NPOI组件操作Excel。类似NPOI的组件还有几个,我觉得这个是最好的。
参考技术A 有两种方式,具体我不多说,就给你一个方向:
1、写文本,用特定符号分隔,保存成csv格式。这种方式适合简单的excel表格
2、使用 NPOI ,它不需要本机安装office软件,就可以实现读写excel功能。可以实现复杂的表格。本回答被提问者采纳

C#导入导出excel的问题

是winform下的,有导入和导出功能
导出是使用了流的方式将datagridview中的信息导出到execl中
而在导入时就有问题了
一.如果使用OleDb连接的方式导入execl数据的话,
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FilePath + ";" + "Extended Properties=\"Excel 8.0;HDR=No;IMEX=1;\"";
1.读取用流方式生成的excel会失败
2.获取工作薄表名时也有问题
System.Data.DataTable sTable =
conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
string tableName = sTable.Rows[0]["TABLE_NAME"].ToString().Trim();
这样获取的表名不一定是第一个工作薄的名字,而且在打开和关闭execl文件的情况下,获取到的表名也不一样
二.如果使用Excel.dll库读取
用户安装的excel版本不定的,所以无法确定引用的Microsoft.Office.Interop.Excel.dll版本,而且会不会出现无法读取用流导出的execl文件这种情况也不知道

要怎么弄,才能导入用流生成的execl文件,而且不受execl版本的影响

参考技术A //导入EXCLE
public static DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties=Excel 5.0;";
string strExcel = string.Format("select * from [0$]", strSheetName);
DataSet ds = new DataSet();
using (OleDbConnection conn = new OleDbConnection(strConn))

conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds, strSheetName);
conn.Close();

return ds.Tables[strSheetName];

//导出EXCLE的代码
protected void ExcleOut(DataSet ds)

Response.Write("<div style='font-size:25px; font-weight:bold;text-align:center'>XXXX</div>");
DataGrid dg = new DataGrid();
Response.AppendHeader("Content-Disposition", "attachment;filename=" + DateTime.Now.ToShortDateString() + ".xls");
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.Default;
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "application/ms-excel";
dg.DataSource = ds;
dg.DataBind();
// dg.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
dg.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();


///很久以前做的了。忘了一些东西,假如不清楚的话可以百度 清清月儿 博客里面有很多C#的东西都很实用
参考技术B public override void VerifyRenderingInServerForm(Control control)

//注释掉下面的代码,否则在asp.net2.0下会报错(注:GridView是asp.net2.0下的控件,1.1下一些控件也可以导出成Excel或者Word)
// base.VerifyRenderingInServerForm(control);


protected void Button1_Click(object sender, EventArgs e)

//导出按钮的事件 ,你只管套用,没有你写得那么复杂

Response.Clear();
Response.BufferOutput = true;
//设定输出的字符集
Response.Charset = "GB2312";
//假定导出的文件名为FileName.xls
Response.AppendHeader("Content-Disposition", "attachment;filename=AnyDate_Tongji.xls"); //你的表名
Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
//设置导出文件的格式
Response.ContentType = "application/ms-excel";
//关闭ViewState
EnableViewState = false;
System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("ZH-CN", true);
System.IO.StringWriter stringWriter = new System.IO.StringWriter(cultureInfo);
System.Web.UI.HtmlTextWriter textWriter = new System.Web.UI.HtmlTextWriter(stringWriter);
this.GridView1.RenderControl(textWriter);
//把HTML写回浏览器
Response.Write(stringWriter.ToString());
Response.End();



那么简单的问题 有什么疑问晚上联系我给你解决
参考技术C 最好导出格式为csv的,wps也能够支持 参考技术D 楼主 要的话我给你发个例子过去追问

好啊,我的邮箱是swg2008.happy@163.com
我试试,看看能不能解决,先谢谢了

追答

发过去了 你看看 记得采纳啊

本回答被提问者采纳

以上是关于c# 只安装WPF环境 导出excel表格 问题的主要内容,如果未能解决你的问题,请参考以下文章

在没有为 Wpf 产品安装 MS Office 的情况下导出到 Excel

从网页上导出EXCEl表格失败,怎么解决?

只是换了台电脑C#导出Excel就提示这个错误

如何在wpf c#中从数据表导出到excel文件

C#导出excel 不安装office excel情况下

c#导出整个HTML页面到excel表格...汉字乱码,系统是win7,安装的office 07 导出的03(.xls)文件