Tag: zip

如何parsingzip文件中的excel文件?

我希望能够parsing一个zip文件中的excel。 我已经能够parsing压缩文件,以返回该压缩文件中的文件,如果正则expression式匹配带来了一个Excel文件,我想parsing文件。 以下是parsingzip文件的excel电子表格名称的脚本。 #!/usr/bin/perl use strict; use warnings; use Archive::Zip; use Spreadsheet::ParseExcel; my $zipFile = Archive::Zip->new(); my $xl_file = ""; #open zipfile $zipFile->read( '/home/user/Desktop/test.zip' ) == 0 || die "cannot read zip file\n"; #find all files within zipfile my @files = $zipFile->memberNames('/home/user/Desktop/test.zip'); foreach my $file (sort @files) { #find all excel files if($file =~ m/(.*xls)/){ […]

VBA复制和replacezip文件夹中的文件

我已经创build了一个VBAmacros,它根据许多参数从文件夹/子文件夹中提取文件。 这包括查找符合这些参数的zip文件夹并将其复制到新目录,以便每个文件都可以通过search。 我遇到的问题是,这些zip文件中的许多文件都是重复的,并且项目要自动化,所以我不能坐在那里,每次popup时都不要复制button。 有没有办法通过zip文件search并忽略重复的文件? 我的代码的这一部分是: Sub Unzip(fileName As String, mainSubfolder As String) Dim sourceDir As String, fileString As String Dim FileNameFolder As Variant Dim oApp As Object sourceDir = "\\Filesrv02\depts\AR\EDIfiles\Remits" fileString = mainSubfolder + fileName If Right(sourceDir, 1) <> "\" Then sourceDir = sourceDir & "\" End If FileNameFolder = sourceDir & "Unzipped" If Dir(FileNameFolder, […]

如何保存Excel 2010工作簿中的每个工作表以使用macros分隔CSV文件?

此问题与之前发布的问题非常相似: 将工作簿中的每张工作表保存为单独的CSV文件 但是,我的要求略有不同,因为我需要能够忽略具体命名的工作表(请参见下面的#2)。 我已经成功地利用这个答案发布的解决scheme: https : //stackoverflow.com/a/845345/1289884这是回应上述问题发布满足几乎所有我的要求,除了#2下面和# 3以下: 我有一个由多个工作表组成的Excel 2010工作簿,我正在寻找一个macros: 将每个工作表保存为一个单独的逗号分隔的CSV文件。 忽略特定的命名工作表(即名为TOC和表名称查找) 将文件保存到指定的文件夹(例如:c:\ csv) 另外理想的解决scheme: 创build一个包含指定文件夹内所有CSV工作表的zip文件 任何帮助将不胜感激。

如何在Python3中压缩两个相同长度的列表,其中第一个具有“无”值?

我遍历Excel表和加载数据到数据框。 这个想法是为当前工作表创build临时数据框,并将其追加到最终的数据框中,在每次迭代之后收集所有数据(包含几张工作表的几个excel文件)。 问题是那些excel工作表的数据行超过100列宽,部分列有多索引(如month> days range),合并单元格中索引较大。 我取消合并的单元格,合并的单元格我正向填充它合并时的值,并且将两个索引级别的值读入两个单独的列表:header_lv1和header_lv2 列表的长度是相同的,但是在索引的顶层创build的索引在excel中只有一个级别的地方有一些“无”的值。 我想用“lv1 – lv2”值将这些列表压缩到一个列表中,以最后一个dataframe列的索引。 现在我有: header_lv1 = [ws.cell(row=2, column=i).value for i in range(1, sumaInCol + 1)] # read first level of indexes to list header_lv1.extend(['Typ', 'Typ']) # add two more columns header_collection.append(header_lv1) # collect header of each opened sheet for comparison header_lv2 = [ws.cell(row=3, column=i).value for i in range(1, […]

由rubyzip压缩的xlsx不能被Excel读取

我正在编写可以读/写Excel xlsx文件的代码。 xlsx文件只是几个xml文件的zip文件,所以为了testing我是否可以编写一个文件,我使用了一个名为rubyzip的gem来解压缩xlsx文件,然后立即将其压缩回新的压缩文件,而不用修改数据。 但是,当我这样做时,我无法打开新的excel文件,据说这是损坏的。 或者,如果我使用Mac OS X的存档实用程序(本机应用程序来处理zip文件),并且我解压并重新压缩excel文件,数据没有损坏,我可以在Excel中打开生成的文件。 我发现rubyzip的“unzip”functionrubyzip “破坏”数据,而是压缩过程。 (实际上,当我在rubyzip创build的新zip文件上使用Archive Utility时,文件可以被Excel读取)。 我想知道为什么会发生这种情况,以及可以通过Excel以可读的方式编程压缩内容的解决scheme。 我的代码压缩: def compress(path) path.sub!(%r[/$],'') archive = File.join(path,File.basename(path))+'.zip' FileUtils.rm archive, :force=>true Zip::ZipFile.open(archive, 'w') do |zipfile| Dir["#{path}/**/**"].reject{|f|f==archive}.each do |file| temp = file zipfile.add(file.sub(path+'/',''),file) end end end

使用EPPLUS C#创buildExcel XLSX文件的ZipArchive

我有以下函数返回我的ASP.NET MVC应用程序的FileStreamResult 。 /// <summary> /// Generates a FileStreamResult containing a zip file with the EXCEL file in it /// </summary> /// <typeparam name="T">Type of object in the object list parameter</typeparam> /// <param name="objectList">The object list enumerable. This contains the data for the EXCEL file</param> /// <param name="fileName">The file name of the EXCEL</param> /// <returns>FileStreamResult</returns> […]

VBA读取一个Zip文件

我已经看到了一些代码来做到这一点,但对我来说这是行不通的。 我正在运行Windows 7和Excel 2010(从办公室2010)。 我的代码: Public Sub GetZipContents() Dim oApp As Shell32.Shell Set oApp = New Shell32.Shell Dim strFile As String Dim xFname Dim xRow As Long Dim newRow As Long Dim rNew As Range Dim fileNameInZip Dim oFolder As Variant Dim i As Integer i = 1 xRow = 0 Set fd = Application.FileDialog(msoFileDialogFilePicker) […]

vba,如何用特殊字符压缩文件?

当压缩文件夹中的所有文件时,我得到一个错误 '''''Create empty Zip File NewZip (FileNameZip) Set oApp = CreateObject("Shell.Application") '''''Copy the files to the compressed folder oApp.Namespace(FileNameZip).CopyHere oApp.Namespace(FolderName).items ''error here 错误:c:… \Jørgen.doc无法压缩,因为它包含不能位于压缩文件夹(例如ø)中的字符。 你应该重命名这个文件或目录。 但是,如果我导航到该文件,并手动将其复制到zip文件夹,它没有任何问题。 有没有办法在我的vba代码中绕过这个错误

查询定义在XLSX文件中的位置

使用以下自定义查询创buildxlsx文件(从typicode.com的jsonplaceholder服务中加载数据) let Source = Json.Document(Web.Contents("https://jsonplaceholder.typicode.com/posts")), #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"userId", "id", "title", "body"}, {"userId", "id", "title", "body"}) in #"Expanded Column1" 并解压缩它我会期望上述string(查询定义)以某种forms在结果文件夹结构中的某处find。 目标是以编程方式replaceURL,但不知何故,我能find的唯一查询定义是 <connection id="1" keepAlive="1" name="Query – posts" description="Connection to the 'posts' query in the workbook." type="5" refreshedVersion="6" background="1" saveData="1"> <dbPr connection="Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=posts;Extended […]

当使用POI读取.xlsx文件时,出现错误“Zip File is closed”

public Sheet readExcel() throws Exception{ //File fi=new File(new File(System.getProperty("user.dir"))+"\\src\\testdata2.xls"); File fi=new File("C:\\Users\\admin\\workspace\\HMS\\src\\testdata\\testdata1.xlsx"); Workbook wb = new XSSFWorkbook(fi); Sheet Sheet = wb.getSheetAt(0); int rowCount = Sheet.getLastRowNum()-Sheet.getFirstRowNum(); for (int i = 1; i < rowCount+1; i++) { Row row = Sheet.getRow(i); if(row.getCell(0).toString().length()==0){ System.out.println(row.getCell(1).toString()+"—-"+ row.getCell(2).toString()+"—-"+ row.getCell(3).toString()+"—-"+ row.getCell(4).toString()); } } return Sheet; } 通过运行上面的代码得到像这样的错误…….. 线程“main”中的exceptionjava.lang.IllegalStateException:Zip文件在org.apache.poi.openxml4j.util.ZipFileZipEntrySource.getEntries(ZipFileZipEntrySource.java:45)处closures,位于org.apache.poi.openxml4j.opc.ZipPackage。 getPartsImpl(ZipPackage.java:186)at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:684)at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:254) org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:201)at […]