有没有办法在Java POI中使用Java为cellrange添加边框?
像A1:B2应该得到一个左上角 - 右下角的厚边框式?
我知道如何创建和应用单个单元格的样式,我可能会迭代通过单元格并应用适当的样式,但我相信有一个更简单的方法.
我是 QueryDSL 的新手,并且能够在 WHERE-IN 子句中使用多列组合查询,如以下查询:
selec T1.COL1, T1.COL2, .... T1.COL10
from T1
where (T1.COL1, T1.COL2) IN (select T2.COL1, T2.COL2 from T2 WHERE T2.COL3='a' AND T2.COL4='b')
Run Code Online (Sandbox Code Playgroud)
我有主要查询的一部分:
List<Tuple> result = queryFactory.select(t1.col,...,t1.col10)
.from(t1)
.where(???) // This is the part I'm missing
.fetch();
Run Code Online (Sandbox Code Playgroud)
但我不知道如何实现 where 子句。这如何在 QueryDSL 中完成?
提前致谢!
问题摘要: 为什么我从程序菜单启动Excel时加载以编程方式安装的加载项,但是在我打开安装它们的Installer.xlsm工作簿时加载?
详细信息: 我的团队开发了组织中各种用户使用的加载项层次结构.我有一个Installer.xlsm文件,它为每个加载项安装新版本.它有一个Workbook_Open方法,在打开工作簿时卸载当前安装的加载项版本并安装它们的新版本.
这种方法运作了一年多.最近我们更新了加载项的层次结构,从那时起,相同的脚本将成功运行,卸载旧的加载项并安装新的加载项.但是,当重新打开Excel时(从程序菜单或现有工作簿),似乎脚本根本没有任何效果 - 在运行之前安装的加载项仍然安装并且新的加载项甚至没有列出在"管理加载项"窗体中.这也反映在HKCU\...\Excel\Add-in Manager- 加载项列表与运行前的列表相同.
但是,如果我再次打开Installer.xlsm - 它只加载我希望它在成功运行脚本后加载的加载项(加载新安装的加载项并且不加载卸载脚本的加载项)!就像加载项安装在单个.xlsm文件的范围内一样......
笔记:
加载项不会放在Excel的加载项目录中,而是放在项目文件夹(C:\ appname\Addins\date)中.
我在Windows 7上使用Excel 2010并在我的计算机上拥有管理员权限.
HKCU\...\Excel\Add-in Manager.请帮忙解决这个谜!
执行卸载的代码部分:
For Each ad In Application.AddIns
For Each appName In pAppNames
If pIniMap.item("FilePrefix").Exists(appName) Then
filePrefix = pIniMap.item("FilePrefix").item(appName)
If Left(ad.Name, Len(filePrefix)) = filePrefix Then
If ad.Installed Then
ad.Installed = False
Workbooks(ad.Name).Close False
End If
End If
Else
logger.Warn "Entry is missing for section FilePrefix, appName=" & appName, methodName
End If
Next appName
Next …Run Code Online (Sandbox Code Playgroud) 我正在尝试调试一些代码,而在中间的某个地方,我在断点处停了下来.现在我想更改一些变量并多次运行某个循环.
我知道如何更改变量,但在尝试在即时窗口中运行循环时,我会陷入困境.这是一个例子:
Dim i As Integer
Dim j As Integer
For i = 0 To 6
j=i ' Do something
Next i
Run Code Online (Sandbox Code Playgroud)
我尝试了几种代码变体,但每次出现以下错误:
编译错误:下一个没有
我试过搜索,但大部分都找到了关于循环问题的信息,而我很确定循环本身很好.(特别是当我到达断点之前到达它).
我看到有人在这种情况下唯一的地方,他把循环减少到一行,但是在我的情况下,每次这样做都是非常不切实际的.
我意识到我可以调用一个包含循环的函数,然后函数调用可能会起作用,但这再次感觉非常不切实际.所以我想这归结为以下问题.
我在Excel 2010中使用MSXML2.XMLHTTP60为Tomcat 8.5.5上托管的Java REST Web服务编写VBA Web服务客户端.
在VBA中,我希望能够JSESSIONID=E4E7666024C56427645D65BEB49ADC11从响应中获取字符串,并能够在后续请求中设置它.(想要这样做的原因是,如果Excel崩溃,似乎这个cookie丢失了,用户必须再次进行身份验证.我希望能够为用户设置最后存储的会话ID,所以如果会话是在服务器上仍然存在,它们不必在Excel客户端中重新进行身份验证.)
我看到了一些在线资源,根据这些资源,下面将拉出JSESSIONID cookie,但最后一行总是打印出来:
Dim httpObj As New MSXML2.XMLHTTP60
With httpObj
.Open "POST", URL, False
.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
.SetRequestHeader "Connection", "keep-alive"
.Send
End With
Debug.Print "Response header Cookie: " & httpObj.GetResponseHeader("Cookie") 'This should pull the JSESSIONID cookie but is empty
Run Code Online (Sandbox Code Playgroud)
当我打印时,httpObj.GetAllResponseHeaders我看不到任何包含JSESSIONID的标题.
在相同的资源中,以下应该设置所需的cookie,但它不会(我打印出服务器上传入请求的标题,并看到我的尝试没有覆盖JSESSIONID值).
httpObj.SetRequestHeader "Cookie", "JSESSIONID=blahblah"
Run Code Online (Sandbox Code Playgroud)
我可能会错过JSESSIONED如何传输的机制,以及VBA如何以及何时提取它并设置它.
如何才能做到这一点?我很欣赏任何正确方向的指针.
我无法在线找到该问题的解决方案,因此希望在这里可以找到帮助。
我继承了一个Java Web应用程序,该应用程序对Oracle数据库进行更改并显示其中的数据。该应用程序使用“ pamsdb”用户ID。该应用程序在其中一个表中插入了新行(TTECHNOLOGY)。当应用程序稍后查询数据库时,结果集包括新行(我可以在打印输出和应用程序屏幕中看到它)。但是,当我直接使用sqldeveloper(使用相同的用户 ID'pamsdb')查询数据库时,在修改后的表中看不到新行。
一些注意事项:
1)我在这里和其他位置读到,所有INSERT操作都应跟在COMMIT之后,否则其他用户将看不到更改。Java应用程序没有执行COMMIT,我认为这可能是问题的根源,但是由于我在sqldeveloper中使用了相同的用户ID,所以很惊讶我看不到那里的更改。
2)我尝试从sqldeveloper进行COMMIT WORK,但是它并没有改变我的情况。
谁能提出导致差异的原因以及如何解决?
提前致谢!
vba ×3
excel ×2
excel-vba ×2
apache ×1
apache-poi ×1
cookies ×1
debugging ×1
excel-addins ×1
java ×1
jsessionid ×1
loops ×1
oracle ×1
querydsl ×1
sql ×1
web-services ×1