首页 新闻 会员 周边 捐助

GridView导出为Excel后,导出的.xls文件无法作为源文件导入的问题

0
[已解决问题] 解决于 2010-10-30 17:11

如题

555[]的主页 555[] | 初学一级 | 园豆:4
提问于:2010-10-28 15:26
< >
分享
最佳答案
0

你打开导出的文件,用记事本打开看看,应该是一个jtml格式的文件。

如果要想修改再存为xls格式,而不是Html,提供以下两个解决思路:

1、采用xls文件模板的形式,存取都是原生xls,不传动出错,参考:

http://www.cnblogs.com/downmoon/archive/2009/01/16/1376702.html

2、完全采用原生的XLS读写组件,如myxls或NPOI

MyXls是用C#开源项目,可以应用于asp.net 或者 .net应用程序上。它根据微软公开的Excle文档格式文件(BIFF),以二进制格式直接生成excel文档,支持Excel versions 97 - 2007. 。这意味着可以不用在服务器上安装office就能够以excle格式输出数据库中存储的数据了。这对于许多项目来说都是很有用的。

    目前MyXls已经实现了单元格(cell)的格式设置,包括文本颜色、文本大小、字体、单位格边框、底色、列宽、行高,合并单元格,多个sheet页等功能。

http://myxls.in2bits.org/

http://npoi.codeplex.com/

以上两种方式都不需要在服务器端安装Office组件。

邀月 | 高人七级 |园豆:25475 | 2010-10-29 08:34
其他回答(4)
0

自己手写个导入的功能吧

like%'远远'% | 园豆:635 (小虾三级) | 2010-10-28 16:13
0

public DataSet ExceltoDataSet(String ExcelPath)
        {
            string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExcelPath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
            OleDbConnection oleCon = new OleDbConnection(strCon);
            OleDbDataAdapter oleDA = new OleDbDataAdapter("select * from [Sheet1$]", oleCon);
            DataSet ds = new DataSet();
            oleDA.Fill(ds);

            return ds;
        }

利用这个方法可以导入

柠檬绿松 | 园豆:40 (初学一级) | 2010-10-28 16:38
0

自己手动写导出,然后手动导入。csv 格式满足了。或者参看 Open Office XML

码尔代夫iimax | 园豆:3138 (老鸟四级) | 2010-10-28 16:51
0

看看是不是格式有问题?自己新建一个XLS,看能不能导入进去,你导出来的方法是什么?如果是输出HTML为EXCEL,那是导不进去的。

Astar | 园豆:40805 (高人七级) | 2010-10-30 13:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册