从excel删除工作表的问题

时间:2014-04-03 09:14:01

标签: coldfusion coldfusion-9

从Excel中删除工作表是否存在任何已知问题?我的代码不允许我删除第一张纸,但是对任何其他纸张都这样做。

<cfspreadsheet action="read" src="courses.xls" name="spreadSheetVar">
<cfset spreadsheetRemoveSheet(spreadsheetVar,"first")>
<cfspreadsheet action="write" filename="courses.xls"  name="spreadsheetVar" overwrite="true" >


Courses.xls有两张名为first&amp;第二。如果我尝试删除“second”它会删除,但在尝试删除“first”时会抛出错误。

环境:coldfusion dev edition 9,0,2,282541
在内置的IIS中,在窗口7上运行 以下是它抛出的错误

  

java.lang.IllegalArgumentException:Sheet index(1)超出范围   (0..0)at   org.apache.poi.hssf.usermodel.HSSFWorkbook.validateSheetIndex(HSSFWorkbook.java:413)     在   org.apache.poi.hssf.usermodel.HSSFWorkbook.getSheetName(HSSFWorkbook.java:542)     在coldfusion.excel.Excel.removeSheet(Excel.java:179)at   coldfusion.runtime.CFPage.SpreadSheetRemoveSheet(CFPage.java:6912)at at   cftest12ecfm402095173.runPage(C:\ ColdFusion9 \ wwwroot的\ Test_Apps \ test1.cfm:3)     在coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231)at   coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:416)at   coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)at   coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:381)     在   coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)     在   coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)     at coldfusion.filter.PathFilter.invoke(PathFilter.java:94)at   coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:27)at   coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)at   coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:79)     在   coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)     在coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)at   coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)at   coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)at at   coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)     在coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)at   coldfusion.CfmServlet.service(CfmServlet.java:200)at   coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)     在jrun.servlet.FilterChain.doFilter(FilterChain.java:86)at   coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)     在   coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)     在jrun.servlet.FilterChain.doFilter(FilterChain.java:94)at   jrun.servlet.FilterChain.service(FilterChain.java:101)at   jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)at   jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)at   jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)     在   jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)     在jrun.servlet.http.WebService.invokeRunnable(WebService.java:172)     在   jrunx.scheduler.ThreadPool $ DownstreamMetrics.invokeRunnable(ThreadPool.java:320)     在   jrunx.scheduler.ThreadPool $ ThreadThrottle.invokeRunnable(ThreadPool.java:428)     在   jrunx.scheduler.ThreadPool $ UpstreamMetrics.invokeRunnable(ThreadPool.java:266)     在jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

1 个答案:

答案 0 :(得分:0)

我知道这不是答案,我一直在寻找。这只是一种解决方法,如果有些问题陷入困境,无法前进。看起来CF将第一张纸视为活动纸张而无法将其删除 使任何其他工作表处于活动状态将允许删除第一张工作表     &lt; cfset SpreadsheetSetActiveSheetNumber(spreadsheetVar,N)&gt;
其中N不是1。 正如我所说的那样,在电子表格函数中使用java和本地POI的人之前,没有回答这个问题,这就是解决方法。