Chat2DB Edition
Chat2DB Community
Chat2DB Version
Chat2DB Community5.3.0
Deployment
Desktop
Operating System
Windows
Operating System Version
windows 11
Database and Version
Mysql 8.0.37
Problem Summary
The maximum length of cell contents (text) is 32767 characters IllegalArgumentException
The maximum length of cell contents (text) is 32767 characters IllegalArgumentException java.lang.IllegalArgumentException
{"getApplicationMessage":{"env":"community","versions":"5.3.0","buildTime":"2026-07-17 17:54:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"},"errorCode":"The maximum length of cell contents (text) is 32767 characters IllegalArgumentException","errorMessage":"java.lang.IllegalArgumentException","errorDetail":"java.lang.IllegalArgumentException: The maximum length of cell contents (text) is 32767 characters\r\n\tat org.apache.poi.ss.usermodel.CellBase.checkLength(CellBase.java:309)\r\n\tat org.apache.poi.ss.usermodel.CellBase.setCellValue(CellBase.java:290)\r\n\tat com.alibaba.excel.write.executor.AbstractExcelWriteExecutor.converterAndSet(AbstractExcelWriteExecutor.java:86)\r\n\tat com.alibaba.excel.write.executor.ExcelWriteAddExecutor.doAddBasicTypeToExcel(ExcelWriteAddExecutor.java:135)\r\n\tat com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addBasicTypeToExcel(ExcelWriteAddExecutor.java:100)\r\n\tat com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addOneRowOfDataToExcel(ExcelWriteAddExecutor.java:77)\r\n\tat com.alibaba.excel.write.executor.ExcelWriteAddExecutor.add(ExcelWriteAddExecutor.java:58)\r\n\tat com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:59)\r\n\tat com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:73)\r\n\tat com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:50)\r\n\tat ai.chat2db.community.domain.core.impl.db.DbDmlExportServiceImpl.lambda$exportExcel$5(DbDmlExportServiceImpl.java:152)\r\n\tat ai.chat2db.spi.DefaultSQLExecutor.writeExportResultSet(DefaultSQLExecutor.java:200)\r\n\tat ai.chat2db.spi.DefaultSQLExecutor.execute(DefaultSQLExecutor.java:159)\r\n\tat ai.chat2db.community.domain.core.impl.db.DbDmlExportServiceImpl.exportExcel(DbDmlExportServiceImpl.java:144)\r\n\tat ai.chat2db.community.domain.core.impl.db.DbDmlExportServiceImpl.export(DbDmlExportServiceImpl.java:83)\r\n\tat ai.chat2db.community.web.api.controller.DbDmlExportController.export(DbDmlExportController.java:50)\r\n\tat jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\r\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:569)\r\n\tat org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:360)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n\tat org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n\tat ai.chat2db.community.web.api.aspect.connection.ConnectionInfoHandler.connectionInfoHandler(ConnectionInfoHandler.java:65)\r\n\tat jdk.internal.reflect.GeneratedMethodAccessor193.invoke(Unknown Source)\r\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:569)\r\n\tat org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:649)\r\n\tat org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:631)\r\n\tat org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\r\n\tat org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n\tat ai.chat2db.community.web.api.aspect.controller.ControllerHandler.handle(ControllerHandler.java:30)\r\n\tat jdk.internal.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)\r\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:569)\r\n\tat org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:649)\r\n\tat org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:631)\r\n\tat org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\r\n\tat org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\r\n\tat org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:728)\r\n\tat ai.chat2db.community.web.api.controller.DbDmlExportController$$SpringCGLIB$$0.export()\r\n\tat jdk.internal.reflect.GeneratedMethodAccessor269.invoke(Unknown Source)\r\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:569)\r\n\tat ai.chat2db.community.web.api.config.console.ConsoleHelper.doController(ConsoleHelper.java:276)\r\n\tat ai.chat2db.community.web.api.config.console.WebJcefServerBridge.doController(WebJcefServerBridge.java:36)\r\n\tat ai.chat2db.community.jcef.frame.MainJFrame$6.lambda$onQuery$0(MainJFrame.java:653)\r\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\r\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\r\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\r\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\r\n\tat java.base/java.lang.Thread.run(Thread.java:840)\r\n","solutionLink":"https://github.com/chat2db/Chat2DB/wiki/Chat2DB","requestParams":"{\"actionType\":\"execute\",\"headers\":{\"Accept-Language\":\"zh-CN\",\"Time-Zone\":\"Etc/GMT-8\"},\"uuid\":\"63639480-ce77-438d-92c8-932e3d3809ed\",\"requestUrl\":\"/api/rdb/dml/export\",\"method\":\"post\",\"message\":{\"databaseType\":\"MYSQL\",\"dataSourceId\":1784691216416999,\"databaseName\":\"id_wook\",\"sql\":\"select \r\ndetails\r\nfrom goods\n LIMIT 1000","resultSetId":1,"originalSql":"select \r\ndetails\r\nfrom goods","exportType":"EXCEL","exportSize":"ALL"}}"}
导出报错,字段类型为text类型
Steps to Reproduce
导出结果集.xlsx
Expected Behavior
导出结果集.xlsx
Actual Behavior
导出结果集.xlsx
Logs
Screenshots or Additional Context
No response
Impact
Blocks startup or a core workflow
Workaround
No known workaround
Submission Checklist
Maintainer Ready Contract
- User outcome: Exporting an XLSX result set with a text value longer than Excel's 32,767-character cell limit completes without aborting the whole export.
- In scope:
- Enforce the XLSX cell limit in the Community export path before EasyExcel writes a value.
- Keep values at or below the limit byte-for-byte unchanged.
- Truncate only over-limit XLSX text cells to 32,767 characters.
- Add focused regression coverage for the boundary and an over-limit value.
- Non-goals:
- Changing CSV or INSERT export behavior.
- Splitting one database value across several spreadsheet cells.
- Changing SQL execution, pagination, or database value conversion.
- Suggested code or documentation area:
chat2db-community-server/chat2db-community-domain/chat2db-community-domain-core/src/main/java/ai/chat2db/community/domain/core/impl/db/DbDmlExportServiceImpl.java
- A focused test beside the domain-core export tests.
- Acceptance criteria:
- XLSX export does not throw
IllegalArgumentException for a 32,768-character text value.
- The resulting cell contains exactly 32,767 characters.
- A 32,767-character value and normal cells are unchanged.
- CSV export retains the full text value.
- Exact verification:
mvn -B -f chat2db-community-server/pom.xml -pl chat2db-community-domain/chat2db-community-domain-core -am -DskipTests=false -Dtest=DbDmlExportServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false test
mvn -B test -Dmaven.test.skip=false -DskipTests=false -f chat2db-community-server/pom.xml
- Dependencies or required environment: JDK 17. The regression test must use an in-memory or mocked result set and must not require a private database.
- Review maintainer: @openai0229
- First substantive review target: 5 business days
- Milestone: Not release-committed
Chat2DB Edition
Chat2DB Community
Chat2DB Version
Chat2DB Community5.3.0
Deployment
Desktop
Operating System
Windows
Operating System Version
windows 11
Database and Version
Mysql 8.0.37
Problem Summary
The maximum length of cell contents (text) is 32767 characters IllegalArgumentException
The maximum length of cell contents (text) is 32767 characters IllegalArgumentException java.lang.IllegalArgumentException
{"getApplicationMessage":{"env":"community","versions":"5.3.0","buildTime":"2026-07-17 17:54:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"},"errorCode":"The maximum length of cell contents (text) is 32767 characters IllegalArgumentException","errorMessage":"java.lang.IllegalArgumentException","errorDetail":"java.lang.IllegalArgumentException: The maximum length of cell contents (text) is 32767 characters\r\n\tat org.apache.poi.ss.usermodel.CellBase.checkLength(CellBase.java:309)\r\n\tat org.apache.poi.ss.usermodel.CellBase.setCellValue(CellBase.java:290)\r\n\tat com.alibaba.excel.write.executor.AbstractExcelWriteExecutor.converterAndSet(AbstractExcelWriteExecutor.java:86)\r\n\tat com.alibaba.excel.write.executor.ExcelWriteAddExecutor.doAddBasicTypeToExcel(ExcelWriteAddExecutor.java:135)\r\n\tat com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addBasicTypeToExcel(ExcelWriteAddExecutor.java:100)\r\n\tat com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addOneRowOfDataToExcel(ExcelWriteAddExecutor.java:77)\r\n\tat com.alibaba.excel.write.executor.ExcelWriteAddExecutor.add(ExcelWriteAddExecutor.java:58)\r\n\tat com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:59)\r\n\tat com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:73)\r\n\tat com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:50)\r\n\tat ai.chat2db.community.domain.core.impl.db.DbDmlExportServiceImpl.lambda$exportExcel$5(DbDmlExportServiceImpl.java:152)\r\n\tat ai.chat2db.spi.DefaultSQLExecutor.writeExportResultSet(DefaultSQLExecutor.java:200)\r\n\tat ai.chat2db.spi.DefaultSQLExecutor.execute(DefaultSQLExecutor.java:159)\r\n\tat ai.chat2db.community.domain.core.impl.db.DbDmlExportServiceImpl.exportExcel(DbDmlExportServiceImpl.java:144)\r\n\tat ai.chat2db.community.domain.core.impl.db.DbDmlExportServiceImpl.export(DbDmlExportServiceImpl.java:83)\r\n\tat ai.chat2db.community.web.api.controller.DbDmlExportController.export(DbDmlExportController.java:50)\r\n\tat jdk.internal.reflect.GeneratedMethodAccessor270.invoke(Unknown Source)\r\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:569)\r\n\tat org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:360)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n\tat org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n\tat ai.chat2db.community.web.api.aspect.connection.ConnectionInfoHandler.connectionInfoHandler(ConnectionInfoHandler.java:65)\r\n\tat jdk.internal.reflect.GeneratedMethodAccessor193.invoke(Unknown Source)\r\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:569)\r\n\tat org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:649)\r\n\tat org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:631)\r\n\tat org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\r\n\tat org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n\tat ai.chat2db.community.web.api.aspect.controller.ControllerHandler.handle(ControllerHandler.java:30)\r\n\tat jdk.internal.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)\r\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:569)\r\n\tat org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:649)\r\n\tat org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:631)\r\n\tat org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\r\n\tat org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\r\n\tat org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:728)\r\n\tat ai.chat2db.community.web.api.controller.DbDmlExportController$$SpringCGLIB$$0.export()\r\n\tat jdk.internal.reflect.GeneratedMethodAccessor269.invoke(Unknown Source)\r\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:569)\r\n\tat ai.chat2db.community.web.api.config.console.ConsoleHelper.doController(ConsoleHelper.java:276)\r\n\tat ai.chat2db.community.web.api.config.console.WebJcefServerBridge.doController(WebJcefServerBridge.java:36)\r\n\tat ai.chat2db.community.jcef.frame.MainJFrame$6.lambda$onQuery$0(MainJFrame.java:653)\r\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\r\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\r\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\r\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\r\n\tat java.base/java.lang.Thread.run(Thread.java:840)\r\n","solutionLink":"https://github.com/chat2db/Chat2DB/wiki/Chat2DB","requestParams":"{\"actionType\":\"execute\",\"headers\":{\"Accept-Language\":\"zh-CN\",\"Time-Zone\":\"Etc/GMT-8\"},\"uuid\":\"63639480-ce77-438d-92c8-932e3d3809ed\",\"requestUrl\":\"/api/rdb/dml/export\",\"method\":\"post\",\"message\":{\"databaseType\":\"MYSQL\",\"dataSourceId\":1784691216416999,\"databaseName\":\"id_wook\",\"sql\":\"select \r\n
details\r\nfrom goods\n LIMIT 1000","resultSetId":1,"originalSql":"select \r\ndetails\r\nfrom goods","exportType":"EXCEL","exportSize":"ALL"}}"}导出报错,字段类型为text类型
Steps to Reproduce
导出结果集.xlsx
Expected Behavior
导出结果集.xlsx
Actual Behavior
导出结果集.xlsx
Logs
Screenshots or Additional Context
No response
Impact
Blocks startup or a core workflow
Workaround
No known workaround
Submission Checklist
Maintainer Ready Contract
chat2db-community-server/chat2db-community-domain/chat2db-community-domain-core/src/main/java/ai/chat2db/community/domain/core/impl/db/DbDmlExportServiceImpl.javaIllegalArgumentExceptionfor a 32,768-character text value.mvn -B -f chat2db-community-server/pom.xml -pl chat2db-community-domain/chat2db-community-domain-core -am -DskipTests=false -Dtest=DbDmlExportServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false testmvn -B test -Dmaven.test.skip=false -DskipTests=false -f chat2db-community-server/pom.xml