Apache POI 是否为我们提供了任何函数来计算 Excel 文件工作表中“非空”行的数量?
第一次,我有一个包含 10 个数据行的 Excel 工作表,函数 worksheet.getPhysicalNumberOfRows() 返回确切的数字 (10)。但在那之后,我删除了 3 行,然后该函数仍然得到 10 行。也许总行数被 POI 缓存在任何地方。getPhysicalNumberOfRows() 是什么意思?正如其 API 所描述的:“返回物理定义的行数(不是工作表中的行数)”,但我不明白“物理定义”是什么意思。你能帮我解决这个问题吗?
非常感谢!
我正在使用Hibernate和MySQL的项目中。我打算使用序列来为数据库中的所有表生成ID。(很难描述我的问题,因此我将向您举例说明)。
例如:我有2个表A和B。首先,我在表A中插入10条记录,它们的ID为1到10。然后,我在表B中插入10条记录,我希望它们的ID为11-20,而不是1-10。这意味着生成的ID值将由数据库中所有表(而不是单个表)中的所有记录计算。
那么如何在MySQL中使用该概念呢?声明和语法?在Hibernate中,如何使用策略和数据模型生成器将生成的策略应用于数据库?非常感谢!
我有一个名为People的Grails域名,我想检查每个人是否有孩子.孩子是其他人物.这是我的域名结构:
class People implements Serializable {
static constraints = {
name (nullable : false, unique : true)
createdBy (nullable : false)
creationDate (nullable : false)
}
static transients = ['hasChild']
static mapping = {
table 'PEOPLE'
id generator: 'sequence', params : [sequence : 'SEQ_PK_ID']
columns {
id column : 'APEOPLE_ID'
parentPeople column : 'PARENT_PEOPLE_ID'
}
parentPeople lazy : false
}
People parentPeople
String name
String description
Boolean hasChild() {
def childPeoples = People.createCriteria().count {
eq ('parentPeople', People)
}
return (childPeoples …Run Code Online (Sandbox Code Playgroud) 我正在使用Java和Maven构建系统开发Web应用程序,Web服务器是Tomcat 7.0.12.通过Maven build命令将整个项目打包到WAR文件到\ target目录后,我必须将其复制到Tomcat home的webapps文件夹中运行它.这非常不方便,特别是当我修改了一些源文件时,因为我必须再做所有这些事情(构建,复制到Tomcat,再运行它).我在这个问题上研究了一些关于Maven,Tomcat,Eclipse的文章,但没有结果.能否帮到我:1.如何让Tomcat直接在Maven命令构建的项目目标目录下运行WAR文件?无需复制/粘贴WAR文件并重新启动Tomcat?2.如何配置Tomcat以在Eclipse上调试Web应用程序?非常感谢!
顺便说一下,我已经阅读并试图多次配置Tomcat,Maven和pom文件.但我不知道具体的配置是什么,因为有这么多的建议!你能为我提供一个特定的配置示例吗?这是我的配置文件:
Tomcat tomcat-users.xml
<role rolename="manager-gui"/>
<user username="admin" password="" roles="manager-gui"/>
**<role rolename="manager"/>
<user username="admin" password="" roles="manager"/>**
<role rolename="admin-gui"/>
<user username="admin" password="" roles="admin-gui"/>
Run Code Online (Sandbox Code Playgroud)
Maven settings.xml
tomcat管理员
和项目的pom.xml文件:
<build>
<finalName>my-project</finalName>
<defaultGoal>package</defaultGoal>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<server>tomcat</server>
<warFile> ${project.build.directory}/${project.build.finalName}.war</warFile>
</configuration>
</plugin>
</plugins>
// Other plugins
</build>
Run Code Online (Sandbox Code Playgroud)
更多细节:如果我在启动Tomcat实例之前运行mvn tomcat:deploy,则返回的错误是"无法调用Tomcat管理器:连接被拒绝:连接".否则,如果在调用mvn tomcat:deploy之前已启动Tomcat实例,则错误为"无法调用Tomcat管理器:服务器返回HTTP响应代码:403 for URL:http:// localhost:8080/manager/deploy?path =% 2Fmy-project&war = ......"
我有4个类A,B,B1,B2,其继承映射如下所述:
A(映射到表A)是最顶层的父类,它的继承映射策略是tablePerHierarchy=false(意味着它的每个子类映射到一个单表).
B类从A延伸,B1,B2从B延伸.但是B1和B2与B共用同一个表,因此在B类中,我声明tablePerHierarchy=true并使用鉴别器来分离B1和B2.
详细代码如下:
class A {
static mapping = {
tablePerHierarchy false
table 'A'
}
}
class B extends A {
static mapping = {
tablePerHierarchy true
table 'B'
discriminator column : 'TYPE'
}
String bProp1
String bProp2
}
class B1 extends B {
static mapping = {
discriminator column : 'TYPE', value : 'B1'
}
String b1Props1
String b1Props2
}
class B2 extends B {
static mapping = {
discriminator column : 'TYPE', value …Run Code Online (Sandbox Code Playgroud) 我使用ExtJS为我的程序构建客户端.有一种情况我想向服务器发送Ajax请求,并获取响应文件(二进制文件,而不是纯文本文件,即XLS或PDF).如何通过ExtJS获取返回的文件(我的意思是该文件可以下载并存储到客户端)?我不能var result = Ext.decode(response.responseText)用来接收结果,因为响应包含二进制数据并且无法解码.
Ajax调用非常简单:
Ext.Ajax.request({
url : 'myController/exportFile',
method : 'GET',
success : function(response, opts) {
// What should I do to get the file?
},
failure : function(response, opts) {
alert('Export file failed!')
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的服务器操作返回文件:
public void sendFile(HttpServletResponse response, String filePath) {
def file = new File(filePath);
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment;filename=${file.getName()}");
response.outputStream << file.newInputStream();
}
Run Code Online (Sandbox Code Playgroud)
非常感谢!
我正在使用jQuery来读取HTML页面中的数据.在该页面上,我有一个<form>元素,其中包含一些<input>标签供用户输入其值.
初始化时,此表单具有这些<input>元素的一些默认值.当我提交此表单时,我使用该html()方法获取此页面当前状态的HTML字符串,但我不知道为什么此结果字符串仍包含旧值(默认输入值),而不是新值.
有没有办法<input>在调用之前更新或保留用户输入的值到这些元素html()?如何通过使用jQuery方法获取包含最新值的字符串?
非常感谢!
我正在使用Grails和RESTful来开发我的Web应用程序.一切正常,直到我将我的应用程序升级到Grails 2.3.这是我的UrlMappings:我仍然发送请求,提交或正常做一些其他事情,但在POST,PUT请求中,参数丢失.服务器只识别我直接放在URL上的参数,但是当在"params"变量中找不到提交时,我在表单或模型中包含的剩余部分.他是我的UrlMappings:
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?"{ constraints {} }
name apiSingle: "/api/$controller/$id"(parseRequest:true){
action = [GET: "show", PUT: "update", DELETE: "delete"]
constraints { id(matches:/\d+/) }
}
name apiCollection: "/api/$controller"(parseRequest:true){
action = [GET: "list", POST: "save"]
}
name api2: "/api/$controller/$action"(parseRequest:true)
name api3: "/api/$controller/$action/$id"(parseRequest:true)
"/"(view:"/welcome")
"500"(view:'/error')
}
}
Run Code Online (Sandbox Code Playgroud)
我已经在http://grails.org/doc/latest/guide/theWebLayer.html#restfulMappings上阅读了Grails 2.3的最新文档,
但我认为目前尚不清楚.我试过它按照文档但没有结果.并且没有任何关于使用Grails 2.3和RESTful的示例供我参考.
如何使其像以前一样正常工作,并可以访问REST请求中的所有参数值?非常感谢!
我想发出一个HTTP POST请求,它要求参数必须作为原始 JSON 文本传递,但我不知道如何使用 Jersey 客户端。
这是 API 规范(在 Postman Rest Client 中运行良好):(请看我的 Postman 的屏幕截图,URL、正文中的参数和 2 个标题是 Content-Type:application/json 和 Accept:application/json)

这是我在 Jersey 中尝试过的:
JsonObject parameters = new JsonObject();
parameters.addProperty("centerId", centerId);
parameters.addProperty("studentId", studentId);
if (fromDate != null) {
parameters.addProperty("fromDate", fromDate);
}
if (toDate != null) {
parameters.addProperty("toDate", toDate);
}
Object response = client.target("http://localhost:8080/rest").path("student/calendar")
.request(MediaType.APPLICATION_JSON).post(Entity.json(parameters), String.class);
Run Code Online (Sandbox Code Playgroud)
但没有任何效果。谁能建议在这种情况下处理泽西岛的正确方法是什么?谢谢你。
我有一个从SVG文件转换的地图,现在我想在光标位置右边的地图上添加标记.但是标记位于错误的位置,并且它们不遵循任何规则,因此我无法正确监视和修改它们.
从这个例子:http://jvectormap.com/examples/mall/我知道我们可以通过坐标而不是地图经度和纬度将标记放在地图上.但是在初始化地图时会放置它们,而我想在每次单击鼠标时动态放置标记.
从这个例子:http://jvectormap.com/examples/reverse-projection/,我们可以将标记放在光标位置,但是地图需要插图和投影(将e.offsetX和e.offsetY转换为lat,long )我的地图是从SVG文件定制的,因此缺少这些信息.
那么你可以帮助我:
1.如何确定自定义地图的插图和投影?(我使用http://svgto.jvectormap.com/转换我的SVG文件,但它只返回路径)
2.不使用地图经度和纬度,如何将标记放在光标位置?
非常感谢.