Tag: clojure

Clojure – Docjure:方法在REPL中工作,但不在File中

我只是尝试在clojure中读取一个excel文件的内容。 我使用docjure库。 当我在REPL中使用示例代码时,输​​出就像我想要的那样。 但插入到文件后,我得到了一个错误的参数 – 错误的电子表格/select表方法。 这里是代码: (use 'dk.ative.docjure.spreadsheet) (->> (load-workbook (str (System/getProperty "user.dir") "/resources/public/xls/test.xls") (select-sheet "menu") (select-columns {:A :number, 😀 :name}) )) 这个方法的参数是[name ^Workbook workbook] 。 为什么在REPL中只需要一个参数,而在文件中只需要两个呢?

从excel中读取数据到vector中

我如何从csv文件读取数据到vector的vector。 换句话说,每行将是一个向量,每一列将是向量中的一个元素。 这将像一个2D数组[行] [COL]

Clojure代理追加到excel文件

我一直在使用docjure写入excel文件。 大多数情况下,我想追加行已经存在的文件,通常一次一个。 当我这样做没有代理/将来,我加载文件,使用添加行来添加数据,然后重写这样的文件: (defn append [filename data] "data is in the same format as create-workbook, ie [[\"n\" \"m\"] [1 2] [3 4]]" (let [workbook (load-workbook filename)) sheet (select-sheet workbook "Sheet1")] (add-rows! sheet data) (save-workbook! filename workbook))) 我打了很多电话追加,所以我发现这个: http : //blakesmith.me/2012/05/25/understanding-clojure-concurrency-part-2.html ,它显示了如何使用代理写入一个使用未来的文件。 首先,我使用的FileOutputStream而不是FileWriter,它仍然会工作,除非在教程的例子中,你只是将string追加到文件的末尾使用.write然后closures,我需要重写文件,每次我“append”(我认为?),因为在.xlsx工作簿中的字节数多于字符数。 我不知道如何设置这个,因为在教程的日志logging示例中,write-out返回BufferedWriter的更新实例,我不知道这将是什么。 我的另一个select是将数据同时添加到vector(加载文件一次,并保持返回新vector[[\“n \”\“m \”] [1 2] [3 4]])但是我打算做这些电话的10000-100000个,这似乎很多跟踪…虽然要公平地阅读和写许多次的数据可能不是那么好。 如果您对我如何做到这一点有什么build议,我会很感激。 如果有更好的方法来追加,我也愿意打电话给Apache POI本身。 谢谢。 — […]

用clojure docjure编辑一些excel-cells

我正在尝试使用clojure docjure( https://github.com/mjul/docjure )编辑Excel表格中的某些单元格。 在docjure文档显示如何创build一个新的电子表格,但我不想这样做。 我想要做的是读出excel表格的一些信息,计算一些新的值,然后把它们写回到同一表格的特定单元格。 那么前两个步骤工作。 我只是不知道如何写回数值。 我怎样才能做到这一点?