小编elb*_*laf的帖子

从PDF文件集合中提取表格内容

我有一堆PDF - 可能有数百或数千.它们的格式不一样,但是它们中的任何一个都可能有一个或多个表,其中包含我想要收集到单独数据库中的有趣信息.

当然,我知道我必须写一些东西来做这件事.Perl是我的选择 - 或者也许是Java.我不关心什么语言,只要它是免费的(或者在免费试用期间便宜以确保它适合我的目的).

我正在看CAM :: Parse(使用草莓Perl),但我不确定如何使用它来定位和提取文件中的表.我想我确实偏爱Perl,但实际上我想要一些可靠的工作,并且相当容易进行字符串操作.

这样的事情有什么好办法?我是第一个,所以如果java(或python等)有更好的钩子,现在是了解它的好时机.一般指针好; 首选代码将是首选代码.

pdf parsing extract pdf-parsing

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

将函数结果分配给SQL变量并显示

迁移asp.net代码(VB.net)以使用函数和子例程作为参数.使用MS Server Management Studio创建所述函数和子.想在通过网页测试之前测试MS SMS中的功能.这是一个例子.假设我有一个名为"dbo.getNumber"的函数

我正在尝试使用以下方法测试它:

USE [someDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
declare @value int;

select @value = dbo.getNumber;

print @value;
go
Run Code Online (Sandbox Code Playgroud)

当我输入F5(运行"查询")时,它会给出以下信息:

"在此上下文中不允许使用名称"dbo.getNumber".有效表达式是常量,常量表达式和(在某些上下文中)变量.不允许使用列名."

函数dbo.getNumber被接受就好了,顺便说一下.(它计算满足特定条件的数据库记录.)

希望你可以从非工作代码中推断出我想要做什么.

如何从SMS中打印功能的值(用于测试目的)?

根据James Johnson的正确解决方案,如下:

USE [someDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
declare @value int;

select @value = dbo.getNumber();

print @value;
go
Run Code Online (Sandbox Code Playgroud)

请注意函数调用的parens.另请注意:SMS中的intellisense强调dbo.getNumber(),就好像它是一个错误,但是使用F5运行查询并输出正确的结果.

printing variables ssms function

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

使用EPPLUS Excel库格式化列

我写了一个C#程序来创建一个excel电子表格.工作表有多列.我想格式化其中一列.

aFile = new FileInfo(excelDocName); // excelDocName is a string
ExcelPackage pck = new ExcelPackage(aFile);
var ws = pck.Workbook.Worksheets.Add("Content");
ws.View.ShowGridLines = true;
ws.Cells["B:B"].Style.Numberformat.Format = "0.00";
ws.Cells[1, 1].Value = "AA";
ws.Cells[1, 2].Value = "BB";
ws.Cells[1, 3].Value = "CC";
ws.Cells[1, 4].Value = "DD";
for (int row = 2; row <= 10; ++row)
  for (int col = 1; col <= 4; ++col)
  {
  ws.Cells[row, col].Value = row * col;
  }
ws.Row(1).Style.Font.Bold = true;
pck.Save();
Run Code Online (Sandbox Code Playgroud)

问题是,虽然它正确地格式化列,但它也使用格式而不仅仅是我指定的列格式化其他列.我也尝试过:

ws.Column(1).Style.Numberformat.Format = "0.00";
Run Code Online (Sandbox Code Playgroud)

这是一个错误还是我错过了什么?

c# export-to-excel number-formatting epplus

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

在VBA shell命令中使用AppActivate和Sendkeys

我想在VBA中使用shell命令在应用程序之间来回切换.我正在使用SendKeys来处理进程A中的内容然后转移到进程B,然后进行处理A然后进程B.它适用于第一次迭代.当我使用AppActivate返回进程B时,它实际上确实将焦点切换回进程B.但是,它忽略了来自SendKeys的后续命令.

示例代码:

Sub pastePDF2TXT_v3(pdfName As String, txtName As String)


Dim acrobatID
Dim acrobatInvokeCmd As String
Dim acrobatLocation As String

Dim notepadID

Dim acrobatID2
Dim notepadID2

Debug.Print "here"


acrobatLocation = "C:\Program Files\Adobe\Acrobat 9.0\Acrobat\Acrobat.exe"

acrobatInvokeCmd = acrobatLocation & " " & pdfName

acrobatID = Shell(acrobatInvokeCmd, 1)
AppActivate acrobatID
SendKeys "^a", True  '^A selects everything already in the pdf file.
SendKeys "^c", True  '^C copies the selection to the clipboard.



notepadID = Shell("NOTEPAD.EXE " & txtName, 1)  ' invoke notepad on the text …
Run Code Online (Sandbox Code Playgroud)

shell vba sendkeys

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

从VBA中的powerpoint文件中提取所有文本

我有一大堆powerpoint文件,我想从中提取所有文本,然后将它们全部集成到一个大文本文件中.每个源(PPT)文件都有多个页面(幻灯片).我不关心格式化 - 只关心单词.

我可以通过PPT中的^ A ^ C手动执行此操作,然后在记事本中使用^ V; 然后在PPT中向下翻页,并对powerpoint中的每张幻灯片重复.(太糟糕了,我不能只做一个会抓住一切的^ A然后我可以使用sendkey来复制/粘贴)

但是有数百个PPT具有不同数量的幻灯片.

看起来这似乎是一件普通的事情,但我无法在任何地方找到一个例子.

有没有人有示例代码来执行此操作?

powerpoint vba text strip powerpoint-vba

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

Asp.net控制回发后不更新

我正在编写代码来从asp控件读取数据以更新数据库中的记录.我已经在最后一天进行了调试,我已将其追溯到之前我应该​​注意到的事情.

代码首先使用数据库中的现有值填充控件.当我单击SAVE时,它应该从控件中读取当前值并保存.不幸的是,它实际上正在做的是在对它们进行更改之前使用控件的值.它没有看到控件的变化.

这是一个示例:

<asp:TextBox ID="OtherCourseName_5" runat="server"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)

这是btnSave_onClick()函数中相应的后面代码:

int object_number=5;

string other_course_name_string
    = "OtherCourseName_" + object_number.ToString().Trim();

TextBox ocn = utilities
   .utils
   .FindControlRecursive(this.Master, other_course_name_string) as TextBox;
Run Code Online (Sandbox Code Playgroud)

我正在使用FindControlRecursive()我在网上找到的地方.它确实有用,但为了以防万一,我试图直接解决控制问题OtherCourseName_5.Text.即使我只是显示值OtherCourseName_5.Text,它也会给出原始值.

我使用同一页面输入新数据和编辑数据.输入数据时它工作正常.也就是说,它正确地看到TextBox控件已从空变为拥有数据.只有在我调用页面上的编辑功能时(通过传递edit=true).我通过将开关添加edit=true为查询字符串来调用它(程序正确读取该开关,到达相应的代码区域,打印出所有正确的值 - 除了控件的内容!).

该页面太复杂,无法发布整个内容.我试图传达必要的细节.完全有可能我做了一个简单的编码错误,但似乎更有可能我从根本上误解了页面的处理方式.

是否有任何已知的东西可以使控件的价值看起来好像没有改变?

注1:我想也许在输入数据后我不得不去另一个领域,但我试过了,这仍然是一个问题.

注意2:我正在使用两者TextBoxDropDownList控件,并且两者都有相同的问题.

注3:这些控件位于面板上,页面使用的是SiteMaster.我没有遇到任何问题,也不认为问题存在,但我现在要质疑物理定律.

c# asp.net textbox updates

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

copy-paste tables from word to excel

I have a word document which is updated periodically. I can go into that Word document, select the contents of an entire table and copy, then go into an Excel spreadsheet and paste it. It's screwed up; however, I fix it as follows:

    sht.Cells.UnMerge
    sht.Cells.ColumnWidth = 14
    sht.Cells.RowHeight = 14
    sht.Cells.Font.Size = 10
Run Code Online (Sandbox Code Playgroud)

This manual copy-paste works regardless of whether the table is has merged fields. Then I can start to manipulate it manually: parsing, checking, computations, etc.

I can …

excel vba ms-word copy-paste word-vba

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

从SQL Server引导用户

我不知道怎么问这个问题.我们正在运行SQL Server 2008 R2.我不是管理员,而是程序员.我需要编写一个应用程序,在晚上更新一些数据库的东西.我将设置一个标志来禁用对数据库的登录,但是我想让除了我之外的任何人都无法使用特定的数据库,即使有人已经登录到数据库.我的程序将作为批处理文件每晚运行,可能具有管理员权限.

我期望生成类似SQL命令脚本的东西.我可以使数据库脱机,除了我需要自己修改它.不确定处理此问题的最佳方法.

database offline sql-server-2008-r2

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

是否有一个 python 包允许团队通过类似 git 的界面共享 venvs?

我正在和一个团队一起工作。我们每个人都有自己的Windows系统。我们有共享驱动器和共享 git 存储库。我们想要一个共享的虚拟环境(Python)。

\n

我的理解(根据我自己和其他人之前的问题)是虚拟环境不包含运行Python所需的所有文件,特别是共享VE不包含Python解释器。

\n

我可以看到如何创建一个共享 VE,似乎我们可以将其复制,或者将其放在共享驱动器上,或者将其放在 git 存储库中。但我对此的理解是,它并不能消除个人安装自己本地版本的python的需要。那是对的吗?

\n

我的一位同事听说(或读过)“有一个包允许团队通过类似 git 的界面共享他们的虚拟环境配置。这样你就可以 \xe2\x80\x9cpull\xe2\x80\x9d 更新配置,它将自动安装新的软件包。这允许每个人更改配置并在将其发布给团队之前对其进行测试。”

\n

那么有没有一个特殊的包可以实现这一点呢?或者它只是一个常规的 venv 与其他文件一起包含在 git 存储库中?如果我们这样做,那么我们必须将 venv 全部放在文件系统的同一位置,或者我们必须进入并手动更改 activate.bat 中的 VIRTUAL_ENV 变量。那是对的吗?

\n

无论如何,我们都必须安装自己的本地版本的 python。那是对的吗?

\n

python git package virtualenv

3
推荐指数
2
解决办法
2524
查看次数

无法通过附加到列表理解创建的列表来在单个语句中创建元组

目标:在单个易于理解的语句中创建一个元组,该元组由 Pandas 数据框的列标题和一个附加列组成。

例如说:

df.columns = ['a', 'b', 'c']
fname = 'sample.txt'
Run Code Online (Sandbox Code Playgroud)

我可以在三个语句中创建元组 ('a', 'b', 'c', 'sample.txt') 如下:

y = [x for x in df.columns]
y.append(fname)
mytuple = tuple(y)
Run Code Online (Sandbox Code Playgroud)

它可读,但冗长。我可以将其简化为两个语句:

y = [x for x in df.columns].append(fname)
mytuple = tuple(y)
Run Code Online (Sandbox Code Playgroud)

这还不错,但我仍然更喜欢在一行中完成。我的想法 A 是单行语句应该像这样工作:

mytuple = tuple([x for x in df.columns].append(fname))
Run Code Online (Sandbox Code Playgroud)

唉,这会产生错误:

TypeError: 'NoneType' 对象不可迭代

我也试过 B(猜测)

mytuple = tuple([[x for x in df.columns].append(fname)])
Run Code Online (Sandbox Code Playgroud)

但这给出了错误的结果

(没有任何,)

我想知道三件事:

  1. 为什么选项 A 不像我认为的那样工作。
  2. 有没有办法在单个语句中做到这一点(非迟钝地)。
  3. 如果是这样,它是如何完成的?

python tuples list-comprehension

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