cxgrid导出EXCEL文件后,打开导出文件有出错提示,不知为什么? 我用CXGRID控件, 进行导出到EXCEL后, 再进行打开导出文件时,会出现重新命名无效的工作表名称. 按确定后可以打开.请问一下,如果去掉这一提示, 是EXCEL的版本问题,还是其它,我用的是EXCEL2000 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为它有Bug,你导出时别用中文名就好了或者找源代码,把Bug修正,其实就是在处理双字节字符的地方弄错了而已 lake_cx ,看名字就与这些控件有关系,所以楼主就按他说的做吧,准没错儿,嘿嘿 不行我的情形是这样的.我导出的数据名是抄收数据.XLS.在打开时,会出现如下出错提示:Excel在"抄写数据.xls"中发现不可读取内容,是否恢复此工作簿的内容,请点击"是".点击是时,会出现重新命名无效的工作表名称.点击关闭后,就可以打开这个表了.麻烦那位高手再帮助解决一下? 在cxXLSExport.pas中把下面这段代码 ASheetPos := FStream.Position + 4; xlsWriteBuffer([XLS_BoundSheet, Length(FSheetName) * 2 + 8, 0, 0, 0]); B := Length(FSheetName); FStream.WriteBuffer(B, SizeOf(B)); B := 1; FStream.WriteBuffer(B, SizeOf(B)); W := cxStrToUnicode(FSheetName); FStream.WriteBuffer(W[1], Length(W) * 2);替换成 ASheetPos := FStream.Position + 4; W := cxStrToUnicode(FSheetName); xlsWriteBuffer([XLS_BoundSheet, Length(W) * 2 + 8, 0, 0, 0]); B := Length(W); FStream.WriteBuffer(B, SizeOf(B)); B := 1; FStream.WriteBuffer(B, SizeOf(B)); FStream.WriteBuffer(W[1], Length(W) * 2); 代码在1311行,改了源代码后记得要使用修改后的源代码编译例如把源代码另存,并加入到你的项目中,放到.prj文件的use中的较为靠前的位置或者在Delphi的Library中把C:\Program Files\Developer Express Inc\ExpressQuantumGrid\Delphi 7\Sources放到最前面 楼上的,你是导出主子表的cxgrid吗? Pascal与Pascal Script是什么关系 如何判断LOE字段是否为空? 求----点对点断点续传文件原代码 (小虾急问)如何让主进程知道它所调用的子进程(exe文件)已经运行结束? 请问如何实现自动关闭一个正在运行的应用程序?谢谢! Sql语句自身含有的冒号 如何实现在wwdbgrid得列头加上一个combobox,可以过滤相应得记录 天可怜见!关于dbcombobox怎样显示对应字段的全部内容? DELPHI编程! 如何知道我按的是OK按钮,还是Cancel按钮 HOOK后对按键创建热键问题以及寻找文件! 数组的初始化问题
或者找源代码,把Bug修正,其实就是在处理双字节字符的地方弄错了而已
我导出的数据名是抄收数据.XLS.在打开时,会出现如下出错提示:Excel在"抄写数据.xls"中发现不可读取内容,是否恢复此工作簿的内容,请点击"是".点击是时,会出现重新命名无效的工作表名称.点击关闭后,就可以打开这个表了.
麻烦那位高手再帮助解决一下?
把下面这段代码
ASheetPos := FStream.Position + 4;
xlsWriteBuffer([XLS_BoundSheet, Length(FSheetName) * 2 + 8, 0, 0, 0]);
B := Length(FSheetName);
FStream.WriteBuffer(B, SizeOf(B));
B := 1;
FStream.WriteBuffer(B, SizeOf(B));
W := cxStrToUnicode(FSheetName);
FStream.WriteBuffer(W[1], Length(W) * 2);
替换成
ASheetPos := FStream.Position + 4;
W := cxStrToUnicode(FSheetName);
xlsWriteBuffer([XLS_BoundSheet, Length(W) * 2 + 8, 0, 0, 0]);
B := Length(W);
FStream.WriteBuffer(B, SizeOf(B));
B := 1;
FStream.WriteBuffer(B, SizeOf(B));
FStream.WriteBuffer(W[1], Length(W) * 2);
例如把源代码另存,并加入到你的项目中,放到.prj文件的use中的较为靠前的位置
或者在Delphi的Library中把C:\Program Files\Developer Express Inc\ExpressQuantumGrid\Delphi 7\Sources放到最前面