DbgridEh 导出 Excel 如果字段长度超过255会截断,那如何导出,另一种神奇的方法
由于DbgridEh 导出 Excel 如果字段长度超过255会截断,所以必须换一种方法来导出,百度 谷歌 看了上百帖,都是有这句:
xlApp := CreateOleObject('Excel.Application');
由于这句代码是要求 客户的电脑上必须有 Office 才行,利用的是OLE技术;
中国的市场是客户电脑上没有Office 但是有WPS,所以带上面那句的代码 都不行,看了很多帖子,发现了一贴很强:
http://blog.sina.com.cn/s/blog_4a8552f80100hee8.html
再客户电脑上没有OFFICE的情况下 除了利用dbgrideh的导出方法,又多了一种导出的方法。代码如下:
另外这里说下dbgrideh 的导出excel,它有两种方式:
1. 客户电脑上有没有Office 都可以,缺陷是 当字段长度 超过255后,会被截断。
- SaveDBGridEhToExportFile(TDBGridEhExportAsXLS,TopExportExcelShow,top_file_name,True);
2.要求客户端电脑上必须有Office,实际是 他内部是调用了CreateOleObject('Excel.Application');注意OLE
- SaveDBGridEhToExportFile(TDBGridEhExportAsOLEXLS,TopExportExcelShow,top_file_name,True);
新型方法代码如下:
- procedure TfrmExportExcel.Excel1Click(Sender: TObject);
- var
- MyList: TStringList;
- MyStr,top_file_name: string;
- I: Integer;
- MySaveDialog: TSaveDialog;
- begin
- MyList := TStringList.Create;
- MySaveDialog := TSaveDialog.Create(nil);
- try
- //-----------------------------
- //初始化
- MySaveDialog.Filter := 'Excel|*.xls';
- MyStr:='';
- //-----------------------------
- //选择文件
- if MySaveDialog.Execute then
- begin
- top_file_name := MySaveDialog.FileName+'.xls';
- end else begin
- ShowMessage('导出失败');
- Exit;
- end;
- //-----------------------------
- //导出表
- frmClientDm.ExportExcelShowAdq.DisableControls;
- for I := 0 to frmClientDm.ExportExcelShowAdq.FieldCount-1 do
- begin
- MyStr := MyStr+frmClientDm.ExportExcelShowAdq.Fields[I].DisplayLabel + Char(9);
- Application.ProcessMessages;
- end;
- MyStr := MyStr + #13;
- frmClientDm.ExportExcelShowAdq.First;
- while not(frmClientDm.ExportExcelShowAdq.Eof) do
- begin
- for I := 0 to frmClientDm.ExportExcelShowAdq.FieldCount-1 do
- begin
- MyStr := MyStr + frmClientDm.ExportExcelShowAdq.Fields[I].AsString + Char(9);
- end;
- MyStr := MyStr + #13;
- frmClientDm.ExportExcelShowAdq.Next;
- Application.ProcessMessages;
- end;
- //回到原点
- frmClientDm.ExportExcelShowAdq.First;
- frmClientDm.ExportExcelShowAdq.EnableControls;
- MyList.Add(MyStr);
- MyList.SaveToFile(top_file_name);
- //-----------------------------
- //提示导出成功
- ShowMessage('导出订单表成功');
- finally
- MyList.Free;
- MySaveDialog.Free;
- end;
- end;
DbgridEh 导出 Excel 如果字段长度超过255会截断,那如何导出,另一种神奇的方法的更多相关文章
- EXCEL某列长度超过255个字符导入SQL SERVER的处理方法
问题描述: [Excel 源 [1]] 错误: 输出“Excel 源输出”(9) 上的 输出列“Description 3”(546) 出错.返回的列状态是:“文本被截断,或者一个或多个字符在目标代码 ...
- EXCEL某列长度超过255个字符导入SQL SERVER2005的处理方法
将注册表中 Jet引擎. HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/4.0/Engines/Excel 如果是:ACE引擎. HKEY_LOCAL_MACHI ...
- C#中用OLEDB操作EXCEL时,单元格内容长度超过255被截断
C#中Microsoft.ACE.OLEDB.12.0 驱动读取excel,会读取前8行来判定每列的数据类型,假如没有超过255个字符,那么会被设置为nvarchar(255),从第9行开始,超过25 ...
- 用OLEDB读取EXCEL时,单元格内容长度超过255被截断
https://support.microsoft.com/zh-cn/help/189897/data-truncated-to-255-characters-with-excel-odbc-dri ...
- c# word操作篇,解决字符串长度超过255就不能替换的问题
本文使用的是Microsoft.Office.Interop.Word组件,必须在系统安装了office相关组件的条件下进行,在com里面找到Microsoft Word 16.0 Object L ...
- C#导出Excel,某单元格内容长度超过255 的解决方法
public static void ToExcel(DataTable dtSource, string strPath, string strSheetName) { System.Data.Ol ...
- ora 32021 设置参数时参数值长度超过255处理办法
alter system set db_file_name_convert='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-.' scope=spfi ...
- POI导出excel,本地测试没问题,linux测试无法导出
java.lang.RuntimeException: java.io.IOException: No such file or directory at org.apache.poi. ...
- SSIS ->> Excel Destination无法接受大于255个字符长度的字符字段(转载)
从下文的链接中找到一些背景,因为Excel会以前8行作为参考,如果某个字段前8行的最长长度没有超过255个字符,就会报错.如果知道某个字段属于描述性字段,而且字段的数据长度很可能超过255个字符长度, ...
- SSIS ->> Excel Destination无法接受大于255个字符长度的字符字段
从下文的链接中找到一些背景,因为Excel会以前8行作为参考,如果某个字段前8行的最长长度没有超过255个字符,就会报错.如果知道某个字段属于描述性字段,而且字段的数据长度很可能超过255个字符长度, ...
随机推荐
- Redis 缓存常见问题
本文为博主原创,未经允许不得转载: 目录: 1. 缓存穿透 1.1 出现原因 1.2 解决方案 1.3 布隆过滤器 2. 缓存雪崩 3. 缓存失效(缓存击穿,热点缓存) 1. 缓存穿透: 缓存穿透是指 ...
- 【Linux】技术收集
Linux进程间通信(六)---信号量通信之semget().semctl().semop()及其基础实验 https://blog.csdn.net/mybelief321/article/deta ...
- JS - 递归实现无限分类
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- css - absolute居中
position:absolut; left:50%; top:50%; margin-left: -(自身一半宽度); margin-top: -(自身一半高度)
- mongo-连接失败
连接mongo失败 默认情况下,mongo最大支持65535个连接 查询当前支持的连接数 db.serverStatus.connections { "current" : 3,/ ...
- Linux_sqlcmd或者是Cloudquery连接SQLSERVER2012的问题解决
Linux_sqlcmd或者是Cloudquery连接SQLSERVER2012的问题解决 背景 最近想使用shell脚本给SQLServer数据库插入数据,但是发现了报错 同时进行CLoudquer ...
- [转帖]MobaXterm激活专业版
本文思路来自 https://github.com/flygon2018/MobaXterm-keygen 有python 环境 并且不看英文的可以继续往下 不然直接访问这个地址也行. 1.需要一 ...
- [转帖]Jmeter学习笔记(九)——响应断言
Jmeter学习笔记(九)--响应断言 https://www.cnblogs.com/pachongshangdexuebi/p/11571348.html Jmeter中又一个元件叫断言,用于检查 ...
- [转帖]jemalloc 性能测试
https://wenfh2020.com/2020/07/30/jemalloc/ jemalloc 是一个优秀的内存分配器,通过与系统默认的内存分配器进行比较:jemalloc 内存分配性能比 ...
- [转帖]Arm发布CortexX4,功耗可降低40%
https://www.eet-china.com/mp/a224124.html ARM 发布了新一代的移动处理器内核,包括 Cortex-X4.Cortex-A720.Cortex-A520,预计 ...