将查询结果生成Excel文件的时候,怎样让一个全部由数字组成的字符串正常显示?

itzhiren 2004-12-23 05:37:29

将查询结果生成Excel文件的时候,如果一个字段是字符类型,并且全部由数字组成,那么生成文件以后,就会显示成科学记数法(例如:3.701E+13)的形式,怎样才能正常显示这一串数字?我用在字段值前面加单引号的方法,但是文件里面也有了单引号,如果要打印的话,很难看,不能打印单引号,请问怎么解决这个问题?还有,怎样用asp设置Excel的单元格格式?
...全文
351 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengquansheng 2004-12-25
  • 打赏
  • 举报
回复
str=str&"<table><tr><td> "&rs.fields(i).value&"</td></tr></table>"
这样写,绝对正确显示,这是最简单的方法啊!!(加 )
comszsoft 2004-12-25
  • 打赏
  • 举报
回复
rs.fields(i).value
改成这样可不可以
cstr(rs.fields(i).value)
字符形式
itzhiren 2004-12-25
  • 打赏
  • 举报
回复
那这样的话,我的记录集的数据放在哪里呢?
hhjjhjhj 2004-12-24
  • 打赏
  • 举报
回复
那不行,建议采用xml,示例如下:
test.xml

<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Version>11.5606</Version>
</DocumentProperties>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowHeight>6300</WindowHeight>
<WindowWidth>11700</WindowWidth>
<WindowTopX>120</WindowTopX>
<WindowTopY>105</WindowTopY>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Center"/>
<Borders/>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="12"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s21">
<NumberFormat ss:Format="@"/>
</Style>
</Styles>
<Worksheet ss:Name="Sheet1">
<Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="1" x:FullColumns="1"
x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">
<Column ss:StyleID="s21"/>
<Row ss:AutoFitHeight="0">
<Cell><Data ss:Type="String">1111111111111111111111</Data></Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<Unsynced/>
<Selected/>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>1</ActiveRow>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
</Workbook>
itzhiren 2004-12-24
  • 打赏
  • 举报
回复
我直接将数据写在一个字符串变量里面,
str=str&"<table><tr><td>"&rs.fields(i).value&"</td></tr></table>"

这样的形式,然后
Response.AddHeader "Content-Disposition", "attachment; filename='"& filename &"'"
Response.Charset = "UTF-8"
Response.ContentType = "application/vnd.ms-excel"

Response.write str

这样的话,我怎么设置单元格的格式?
leinchu 2004-12-24
  • 打赏
  • 举报
回复

str=rs.GetString(,"</td><td>","</tr><tr>",,)
str="<table><tr>"&str&"</tr></table>"
Response.AddHeader "Content-Disposition", "attachment; filename='"& filename &"'"
Response.Charset = "UTF-8"
Response.ContentType = "application/vnd.ms-excel"

Response.write str

参考:
String = recordset.GetString(StringFormat, NumRows, ColumnDelimiter, RowDelimiter, NullExpr)
ColumnDelimiter(分隔记录集的列的HTML代码),RowDelimiter(分隔记录集的行的HTML代码),和NullExpr(当前记录为空时应生成的HTML代码).

试试看!
hhjjhjhj 2004-12-23
  • 打赏
  • 举报
回复
Range.FormulaLocal属性,="@"表示文本
另外,“将查询结果生成Excel文件”可以用Range.CopyFromRecordset方法,注解是:
----------------------------------------------------------
Function CopyFromRecordset(Data As Unknown, [MaxRows], [MaxColumns]) As Long
Excel.Range 的成员
---------------------------
Data是Recordset对象。
leinchu 2004-12-23
  • 打赏
  • 举报
回复
把你代码贴出来,只能帮你改改、试试。

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧