a_way
24233
|
2006/6/12 10:29:35 |
cch001,怎么修改导入时web编码? |
cch001
22002
|
2006/3/9 16:04:11 |
本人经过测试,修改了导入excel时web编码为不中文的代码,并且字体居中显示,如有需要请联系!!! |
darkforce
20347
|
2005/12/26 16:53:03 |
搞定了,我发现是我的Excel的WEB编码选项有问题,改为简体中文后就好了 |
darkforce
20345
|
2005/12/26 16:12:35 |
补充一下:我发现,直接导出为htm文件中文的显示没有问题,按照qqq111兄弟的办法导出的Excel文件中文显示为乱码,但改为htm扩展名后用浏览器打开又没有问题。但是改回xls扩展名后在Excel中中文显示就还是乱码 |
darkforce
20344
|
2005/12/26 16:07:40 |
qqq111兄弟的办法很妙啊!赞一下。但是我试过之后发现一个问题,导出的HTM格式文件的语言编码似乎不是默认为简体中文的,这样Excel打开后看到的中文都是乱码。有什么办法解决这个问题呢? |
syypzm_1004
18817
|
2005/11/1 19:21:33 |
jit : 能否把你实现的单元的所有文件,传给我,谢谢!现在我正在研究这个。我的油箱是:shiyuyu1004@sina.com.cn |
qqq111
15106
|
2005/5/25 15:23:12 |
楼上的意见很好,我试了一下,成功了。 但我找到了一个更好的办法,不用改名: SaveDialog1.Filter:='*.XLS|*.XLS'; SaveDialog1.DefaultExt:='XLS';
if SaveDialog1.Execute then SaveDBGridEhToExportFile(TDBGridEhExportAsHTML,dbgrideh1,SaveDialog1.FileName,true); 即仍然使用TDBGridEhExportAsHTML对象,但文件名使用XLS,这样excel就可以直接打开了,很好用 |
xue_fg
11246
|
2005/1/5 9:38:33 |
最好的办法就是先导出为HTM格式的文件,然后改名字为XLS文件,这样用户打开后就是完全一样的XLS文件了。 |
joist
10888
|
2004/12/24 10:47:25 |
那位兄弟遇到这样的问题了? 使用EhLib3。4 之后, 点击FKLookUp 字段下拉列表,按下Ctrl键,系统立即报错, raised exception class EstackOverflow with message 'Stock overflow',process stopped. 如果不是在便宜环境下,则程序直接关闭了。 |
hjma
10887
|
2004/12/24 10:42:41 |
我还有一个折中的办法,就是先把数据导出到TWebBrowser对象中,然后把 TWebBrowser对象中的内容全部拷贝到Excel中,这样操作比较省事,最最最 主要的是它的输出结果就可以达到与显示界面完全一样的效果, 缺点就是第一次操作时速度比较慢,如果导出多张报表时,速度就快了。
procedure DispHtmlFromStream(const WebBrowser: TWebBrowser; const MStream: TStream); var iPosition: Largeint; hr: HRESULT; pStream: IStream; pTmpPersistStreamInit: IPersistStreamInit; begin Screen.Cursor:=crHourGlass; if MStream = nil then Exit;
with WebBrowser do begin if not Assigned(Document) then begin Navigate('about:blank'); end; MStream.Seek(0, 0); (Document as IPersistStreamInit).Load(TStreamadapter.Create(MStream)); end; Screen.Cursor:=crDefault; end;
TForm1 = class(TForm) BitBtn1: TBitBtn; WebBrowser1: TWebBrowser; end;
procedure TForm1.BitBtn1Click(Sender: TObject); var tmpStream: TMemoryStream; OleNullSheet, OleSheet, OleWorkbook: Variant; begin tmpStream:=TMemoryStream.Create; try WriteDBGridEhToExportStream(TDBGridEhExportAsHTML, DBGridEh1, tmpStream, True); DispHtmlFromStream(WebBrowser1, tmpStream); WebBrowser1.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT); WebBrowser1.ExecWB(OLECMDID_COPY,OLECMDEXECOPT_PROMPTUSER); OleNullSheet:=CreateOleObject('Excel.Sheet'); OleWorkbook:=OleNullSheet.Application.Workbooks.Add; OleSheet:=OleWorkbook.Sheets.Add; OleSheet.Paste; OleSheet.Application.Visible:=True;
ShowMessage('导出数据成功!!'); finally tmpStream.Free; end; end; |
hjma
10883
|
2004/12/24 10:06:32 |
StreamWriteWordArray模块找不到时,可以换成下面这个方法 Stream.WriteBuffer(CXlsLabel, SizeOf(CXlsLabel)); Stream.WriteBuffer(Pointer(str1)^, L); //StreamWriteWordArray(Stream, CXlsLabel); //StreamWriteAnsiString(Stream, str1); 可能有别的单元文件包含进去,不过包含的东西越少越好。 |
jit
10471
|
2004/12/13 16:56:20 |
kdmydream: 效果是一样的啊?你所说的不一样是什么? to: zhy19806,joist 在这里 http://www.2ccc.com/idea.asp?articleid=1663 |
joist
10467
|
2004/12/13 15:06:51 |
jit
发给我好吗,感激!!! |
kdmydream
10127
|
2004/12/3 15:15:53 |
jit: 对于他所所的:“我已经全部解决了DBGridEh的多表头输出到Excel” 我试了的他的作品,好象根本没有解决! 和以前没有太大的差别,我觉得应该输出的效果应该和在DBGridEh看到的效果一样,那才好? |
zhy19806
10105
|
2004/12/2 22:22:02 |
jit 可不可以发一份给我呀 zhy19806@163.com |
jit
10100
|
2004/12/2 21:10:34 |
kdmydream: 发现了第二个bug,我已经发在论坛中了,你自己修正下 |
kdmydream
10072
|
2004/12/2 8:24:55 |
谢谢! |
jit
10054
|
2004/12/1 16:30:19 |
kdmydream: 已经发了 |
kdmydream
10053
|
2004/12/1 16:06:50 |
jit : 能否把你实现的单元的所有文件,传给我,谢谢! 我的Email: liushanfeng@163.com 谢谢! |
jit
10052
|
2004/12/1 15:51:25 |
我已经全部解决了DBGridEh的多表头输出到Excel |