小编Kje*_*din的帖子

为什么我的openpyxl WorkBook.active(file_name)给我一个TypeError:对象不可调用?

我是第一次尝试openpyxl.我有一个excel文件,有两列数据.列'A'具有ID号,而列'C'具有值.我只是尝试提取它们,作为普通键/值对象.

这些是我想要实现的伪步骤

  • 按位置查找文件,并创建工作簿对象
  • 定义WorkSheet对象.就我而言,这是默认的第一页
  • 只要列"A"中有键值,就可以遍历行
  • 将"A"和"C"中的键和值添加到对象中.

问题是我无法通过第2步创建工作表.该行ws = wb.active()似乎是获取默认WorkSheet的完全标准化方法.我看到它在很多例子中使用,并且在写这篇文章时,有关使用该行的SO有93个问题.但在我的情况下,它会抛出一个错误:

  File "C:\myworkspace\Myclass.py", line 18, in <module>
    ws = wb.active()
TypeError: 'ReadOnlyWorksheet' object is not callable
Run Code Online (Sandbox Code Playgroud)

我是Python的新手,但我之前遇到过类似的错误.我知道如果我导入一个python模块名称而不是相关的类名,它会被抛出.到底发生了什么?为什么这种看似标准的检索工作表对象的方法,试图实现模块而不是类?我用错了吗?

file_url = 'C:/myfilepath.xlsx'
key_column_index = 1
value_column_index = 3
row_start = 2

request_map = {}

wb = load_workbook(filename = file_url, use_iterators = True)
ws = wb.active()

row_counter = row_start

while( ws.cell(row=row_counter, column=key_column_index).value ):
    key = ws.cell(row=row_counter, column=key_column_index).value
    value = ws.cell(row=row_counter, column=value_column_index).value
    request_map[key] = value

    row_counter += 1

pprint(dict([(n, tuple(l.split(';'))) for n, l in …
Run Code Online (Sandbox Code Playgroud)

python excel openpyxl

5
推荐指数
1
解决办法
8202
查看次数

如何使flexbox,过渡和IE10协同工作?

我有一个简单的html,我希望在桌面样式显示中的flex项目,在悬停时增长.我还希望它能够过渡到成长状态,以获得流畅的用户体验.

我已经在Chrome中使用了它.flex增长也适用于IE,但过渡不会.我有三重检查,IE10支持转换,所以我显然做了别的错误.我已经尝试过研究所有四种可能的属性来转换,但一切似乎都应该如此.我在文档中找不到与我自己的设置相矛盾的内容.

这是我自己的小提琴:https://jsfiddle.net/3vrp7xyo/3/ 这里是一个问题的另一个答案的小提琴,显示完全相同的问题:http://codepen.io/DrYSG/pen/ovctn(只需删除js-tab中的斜杠,使其工作)

更新:新的小提琴显示转换在两个浏览器中完美运行,在flexbox之外:https://jsfiddle.net/3vrp7xyo/9/

请注意,渐变颜色过渡实际上适用于两种浏览器,但水平增长/缩小则不然

这是我的代码:

.day-row>div {
  line-height: 18px;
  text-align: center;
  margin: -2px -1px;
  border: 2px solid black;
  font-size: 11px;
  color: black;
}

.day-row>div:first-child {
  margin-left: -2px;
}

.day-row>div:last-child {
  margin-right: -2px;
}

.day-row {
  background-color: #CCDFE0;
  margin: -2px;
  border: 2px solid black;
  background-color: white;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}

.releasecalendar-container {
  margin: 0 auto;
  padding: 25px;
  max-width: 1500px;
}

.month-column {
  padding: …
Run Code Online (Sandbox Code Playgroud)

css css3 flexbox css-transitions internet-explorer-10

5
推荐指数
1
解决办法
570
查看次数

为什么我的GregorianCalendar对象返回错误的星期几?

我的问题似乎非常简单.我从GregorianCalendar对象创建一个日历图形用户界面,并使用它的方法计算不同月份的正确天数,以及不同日期的相应工作日.

但工作日有一天休息一致.日历声称2013年7月1日是'2',这在我的世界意味着星期二.星期一应该是'1'."简单!" 我想,并把它放在一行:c.setFirstDayOfWeek(Calendar.MONDAY); 但没有给出任何反应.

所以我搜索stackoverflow得到一个答案,但是每个有问题的人似乎都忘记了1月是0,而不是1.我没有.所以现在我被卡住了.

作为一个简化的代码,我创建了一个非常短的代码片段,它具有相应的输出:

    GregorianCalendar c = new GregorianCalendar();
    c.setFirstDayOfWeek(Calendar.MONDAY);
    c.set(Calendar.MONTH, 6);
    c.set(Calendar.DAY_OF_MONTH, 1);
    c.set(Calendar.YEAR, 2013);

    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-YYYY");
    System.out.println(sdf.format(c.getTime()));
    System.out.println(c.get(Calendar.DAY_OF_WEEK));
Run Code Online (Sandbox Code Playgroud)

输出是:

2013年1月7日

2

我拒绝在我的代码中输入"-1",错误地纠正了显然是错误的症状.感谢帮助.

java calendar date gregorian-calendar

4
推荐指数
2
解决办法
1万
查看次数

为什么Calendar.JUNE将月份设置为7月?

我想你们有些人读过这个标题,并且"哦,另一个关于java的基于0的月系统的问题......".好吧,不是这次.

在我们切换到夏令时之后,我的java日历对象表现得很好.将月份设置为JUNE,实际上将其设置为7月.我不知道为什么,但有人建议我Locale在日历的构造函数参数中设置- 对象.那没用.以下代码01-07-14在我的控制台中返回.

有任何想法吗?

public class test {

    public static void main(String[] args){
        Locale locale = new Locale("da-DK");
        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yy");

        Calendar date = new GregorianCalendar(locale);
        date.set(Calendar.MONTH, Calendar.JUNE);
        System.out.println(sdf.format(date.getTime()));
    }
}
Run Code Online (Sandbox Code Playgroud)

更新:

这也回来了 01-07-14

public class test {

    public static void main(String[] args){
        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yy");
        TimeZone timeZone = TimeZone.getTimeZone("Europe/Copenhagen");

        Calendar date = new GregorianCalendar(timeZone);
        date.set(Calendar.MONTH, Calendar.JUNE);
        System.out.println(sdf.format(date.getTime()));
    }
}
Run Code Online (Sandbox Code Playgroud)

java date gregorian-calendar dst

4
推荐指数
1
解决办法
644
查看次数

防止ajax调用缓存的正确方法是什么?

我有一个AJAX调用,它根据简单的标准参数(如一年中的月份)从不断变化的数据库中返回值.在IE中,此函数返回缓存的数据,这是它永远不应该的.我监控了服务器端,客户端没有联系它.

现在,我的标题问题已经以不同的方式被问到,这里已经多次了.前两个解决方案是:

  • cache: false
  • 传递随机数/字符串/时间戳以使呼叫唯一.

但事情是,这cache: false不起作用,至少不在我的应用程序中.另一方面,传递一个唯一的字符串来防止缓存,似乎是一个快速修复黑客.我不喜欢它.那么在ajax调用上阻止缓存的正确方法是什么?

Ajax调用在防止缓存方面不起作用:

$.getJSON("myURL", {
        json : jsonDataObject,
        cache: false
    }).success(function(data) {                 
        //do something with data
});  
Run Code Online (Sandbox Code Playgroud)

$.ajaxSetup({ cache: false });在调用发生之前我也试过自己调用它,但是没有效果......

ajax jquery caching

4
推荐指数
1
解决办法
1万
查看次数

为什么我在JodaTime.withYear()上得到NoSuchMethodError?

我有一个maven web app项目,我使用JodaTime.JodaTime不是在我的maven项目中直接引用的,而是传递依赖项的一部分.换句话说,我的网络应用程序战争,我的另一个项目作为直接依赖,并且该jar包含JodaTime.

执行这两行后我收到错误.虽然编译得很好.

DateTime firstDate = new DateTime();
firstDate = firstDate.withYear(2016);
Run Code Online (Sandbox Code Playgroud)

这是我的错误:

java.lang.NoSuchMethodError: org.joda.time.DateTime.withYear(I)Lorg/joda/time/DateTime;
Run Code Online (Sandbox Code Playgroud)

我知道,如果我编译并运行不同版本的库,就会发生这类错误,就像这个答案所说的那样,但withYear()自从2006年以来JodaTime 1.3已经存在,我无法看到我可以导入一个旧的版本.我甚至检查了我的最终war文件,并且唯一存在的JodaTime库是2.9.2.

如果我创建一个main-method片段,并且在eclipse中的同一个项目中运行它,那么这两行运行正常.它们只在编译成war文件时失败,并从我的weblogic 10.3.2服务器运行.

有没有人知道如何继续调试这个?

war jodatime nosuchmethoderror maven

4
推荐指数
1
解决办法
2386
查看次数

Slimscroll对鼠标悬停没有反应(或任何反应)

我正在尝试实现一个包含通知的下拉菜单,例如该页面具有:http : //infinite-woodland-5276.herokuapp.com/index.html。我正在尝试重新创建网站右上角的扩音器图标及其菜单。

我成功地制作了带有项目列表的标题菜单图标。但是我不能使滚动条工作。

它使用的是jquery插件slimScroll,可在此处找到:http ://rocha.la/jQuery-slimScroll 。

在教程中,滚动条的位置看起来非常简单直接。这是我的工作:

$(document).ready(function(){
        $('#main-navbar-notifications').slimScroll({
            height : 250
        });
    });
Run Code Online (Sandbox Code Playgroud)

实施此代码后,此代码出现在我的DOM中:

<div class="slimScrollBar" style="width: 7px; position: absolute; top: 0px; opacity: 0.4; display: none; border-radius: 7px; z-index: 99; right: 1px; height: 195.925px; background: rgb(0, 0, 0);"></div>
<div class="slimScrollRail" style="width: 7px; height: 100%; position: absolute; top: 0px; display: none; border-radius: 7px; opacity: 0.2; z-index: 90; right: 1px; background: rgb(51, 51, 51);"></div>
Run Code Online (Sandbox Code Playgroud)

正如我所期望的那样,它们没有出现在#main-navbar-notifications中,而是随后出现。但是,我发现我要复制的示例中存在完全相同的DOM结构。好像是应该的。

但是我的滚动条根本不起作用。如果我将鼠标悬停在div上,则什么也不会发生。我尝试将滚动条设置为始终可见,但仍然没有任何反应。然后,我在chrome inspector中进入HTML本身,并手动将滚动条和导轨设置为可见。这样可以提高可见性,因为它们的外观完全符合我的预期,但是它们仍然没有对任何鼠标操作做出反应。

我能够找到的关于该主题的唯一信息是,确保将我的滚动div设置为position: relative;,但这没有做任何事情。我的控制台中没有错误消息,也没有任何消息。

我试图在小提琴中重现我的问题,但无法在此处上传slimscroll库。

有谁知道这个错误可能是什么?还是有任何找出问题根源的策略?

html javascript jquery slimscroll

3
推荐指数
1
解决办法
910
查看次数

如何将String值作为隐藏参数绑定到&lt;li&gt; -tag?

我正在从不管理的数据库中提取数据。它是一个列表,重要的值是:

  • 文件夹名称
  • 指数 Integer
  • UID(唯一标识) String
  • 文档名称

我已经基于使用<ul><li>标签的模型成功创建了一个树形结构的浏览器。我还通过双击实现了动作侦听器,找到了ID,并采取了相应的行动。标识已存储,并作为代表叶子或文件名value的个人的- 参数<li>

但是事实证明,索引号不是唯一的。我希望它们会是,即使有的列UID。我试图将设置valueUID String。它在我的浏览器中有效,如生成的HTML代码的片段所示:

<li role="treeitem" value="1581f20c-0ef9-4c21-a8ab-a407da310cf5" ... >
Run Code Online (Sandbox Code Playgroud)

但是,当我检索该值并将其保存到数据库时,它只会获取出现在第一个非数字字符前面的数字值。在这种情况下,是1581。我检查了一下,得出的结论是,值参数只接受数字值,这对我来说真的很糟糕。

还有其他方法可以将未显示的UID字符串绑定到HTML列表元素吗?

编辑2:

由于意识到我的误解,因此我删除了之前的编辑。自定义数据标签需要语法“ data-variablename”,而在检索它时,我应该省略“ data-”,而只需获取变量名。

html javascript jquery html-lists uid

2
推荐指数
1
解决办法
2148
查看次数

我重命名了我的列以包含表名。为什么我不能重命名它了?

我设法将 SQL 中的列重命名为表名和预期的列名,用点分隔。我用了这个语句:

EXEC sp_rename 'Booking.MasterBookingID', 'Booking.BookingID'
Run Code Online (Sandbox Code Playgroud)

这行得通,但问题是,它应该是:

EXEC sp_rename 'Booking.MasterBookingID', 'BookingID'
Run Code Online (Sandbox Code Playgroud)

所以我的专栏不是被命名BookingID,而是现在被命名Booking.BookingID。所以我想,好吧,我只需要再次重命名它。我去:

EXEC sp_rename 'Booking.Booking.BookingID', 'BookingID'
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

> No item by the name of 'Booking.Booking.BookingID' could be found in
> the current database 'BookingSystemTest', given that @itemtype was
> input as '(null)'.
Run Code Online (Sandbox Code Playgroud)

所以我尝试了其他几种方法:

EXEC sp_RENAME 'Booking.BookingID', 'BookingID' 
Run Code Online (Sandbox Code Playgroud)

和以前一样的错误。

EXEC sp_RENAME 'Booking.BookingID', 'BookingID', 'COLUMN'
EXEC sp_RENAME 'Booking.Booking.BookingID', 'BookingID', 'COLUMN'
Run Code Online (Sandbox Code Playgroud)

两者都给出错误:

> [Error Code: 15248, SQL State: S1000]  Either the parameter @objname
> is ambiguous …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

1
推荐指数
1
解决办法
177
查看次数