GridView导出为Excel后,导出的.xls文件无法作为源文件导入的问题
2008-12-25 18:10
495 查看
今天有人问了一个导出到Excel的问题,经典的导出代码想来大家也都知道,就是循环读数据,写成一个HTML,然后存为一个.xls文件。
可以参考我之前的一篇文章:GridView导出到Excel和开源图表工具
这种文件是可以在Excel程序里正常打开的,但如果使用这种文件作为数据源文件再进行导入,但我们使用下面的经典Excel导入Sql的代码时,就会出错。
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
原因是这个导出的文件仅仅是一个文本的HTML文件,而不是Excel的原始(native)文件格式。
大家可以这样测试一下,到这里http://mattberseth2.com/demo/Default.aspx?Name=Export+GridView+to+Excel&Filter=All下载导出的Excel,这是用记事本打开,是这样的:
如果用Excel打开再另存一下,就是这样的了:
为了确保导出的Excel在各种版本和情况都可以使用,可以考虑转换为Excel的原始(native)格式。这个需要使用OLEObject。有一点示范的代码:
GridView导出到Excel和开源图表工具
Excel表数据导入SqlServer数据库中
ExporttoExcel:UseASP.NETtosendfunctionallyrichreportstoyourusers.
HowToExportDatainaDataGridonanASP.NETWebFormtoMicrosoftExcel
一个有关保存为EXCEL的问题.马上给分!
可以参考我之前的一篇文章:
这种文件是可以在Excel程序里正常打开的,但如果使用这种文件作为数据源文件再进行导入,但我们使用下面的经典Excel导入Sql的代码时,就会出错。
SELECT*FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel5.0;DatabASE=[Excel表.xsl文件的路径];HDR=YES;IMEX=1',Sheet1$')
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
原因是这个导出的文件仅仅是一个文本的HTML文件,而不是Excel的原始(native)文件格式。
大家可以这样测试一下,到这里
如果用Excel打开再另存一下,就是这样的了:
为了确保导出的Excel在各种版本和情况都可以使用,可以考虑转换为Excel的原始(native)格式。这个需要使用OLEObject。有一点示范的代码:
//ConvertHTMLfiletoExcelnativeformat OLEObjectexcel excel=CREATEOLEObject ifexcel.ConnectToObject(docname)=0then excel.application.DisplayAlerts=FALSE excel.application.workbooks(1).Parent.Windows(excel.application.workbooks(1).Name).Visible=True excel.application.workbooks(1).saveas(docname,39) excel.application.workbooks(1).close() endif DESTROYexcel //done
一些可以参考的网页:
Excle导出:
相关文章推荐
- NPOI 操作数据库中数据的导入导出(Excel.xls文件) 和null数据的处理。
- 从EXCEL导入文件时无法将DBNull.Value强制转换为类型。。。,请使用可空类型 问题的解决
- ThinkPHP 3.2 + PHPExcel 导入导出文件 第三方类库不能用问题解决
- 关于从GridView表中导出数据到Excel表中,身份证或者长度过长的数据在Excel中无法正常显示的问题
- Asp.Net下导出/导入规则的Excel(.xls)文件
- [转]Asp.Net下导出/导入规则的Excel(.xls)文件
- 关于oracle 11g导出的dmp文件无法导入10g的问题
- IE7.0下应用程序无法导出Excel文件的问题及解决
- Asp.Net下导出/导入规则的Excel(.xls)文件
- poi导入导出excel文件,兼容.xls和.xlsx两种格式
- [导入]Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- ThinkPHP 3.2 + PHPExcel 导入导出文件 第三方类库不能用问题解决
- sql server中导入/导出Excel的xls文件
- [导入]ASP.NET 2.0中将 GridView 导出到 Excel 文件中
- 用toad导入和导出excel(.xls)文件(表的数据)
- Asp.Net下导出/导入规则的Excel(.xls)文件
- ThinkPHP 3.2 PHPExcel 导入导出文件 第三方类库不能用问题解决
- 关于从GridView表中导出数据到Excel表中,身份证或者长度过长的数据在Excel中无法正常显示的问题
- asp.net<Web版> ---GridView 数据导出到excel表,系列问题<一>---导出的Excel文件格式与文件扩展名指定的格式不一致
- asp.net导出/导入规则的Excel(.xls)文件