在 php 中交叉乘法文本数据


Cross multiply text data in php

我有两个 excel 表-

第一页列:

ColA ColB ColC ColD ColE (containing M rows) ~700 rows  
A     B    C    D    E  
AA   BB   CC    DD   EE

第二页列:

Col1 Col2 Col3 Col4 (containing N rows) ~ 100 rows  
1     2    3    4
11    22   33   44 

最终结果集:

ColA ColB ColC ColD ColE Col 1 Col2 Col3 Col4  
A    B     C    D    E   1      2    3    4  
A    B     C    D    E   11    22    33   44  
AA   BB   CC   DD   EE   1      2     3    4  
AA   BB   CC   DD   EE   11    22    33    44  

我想要一个结果电子表格,它将是上述两张纸的交叉乘法:M X N 行并将其复制回 csv/excel。

我正在使用PHP交叉连接两个工作表。我已经将两个工作表都转换为csv,所以我的第一张工作表是csv1,第二张是csv2。

<?php
$csv1 = array_map('str_getcsv', file('Book1.csv'));
$csv2 = array_map('str_getcsv', file('Book2.csv'));
$ans = array();
foreach ($csv1 as $key1) {
    foreach ($csv2 as $key2) {
        $ans[] = $key1 . ' ' . $key2;
    }
}
$fp = fopen('file.csv','w');
foreach($ans as $fields) {
    fputcsv($fp, $fields);
}
?>

出于某种原因,这是行不通的。服务器没有响应,文件没有填充。

您必须编写一些VBA代码。如果您所说的更快意味着更容易,几乎没有开发,那么将 Access 中的两个工作表粘贴并追加为单独的表,并使用两个表之间的开放联接创建一个查询,选择所有字段。

如果你想纯粹在excel中做到这一点,你可以使用INDIRECT((,ROW((和MOD((运算符来完成。您应该知道,完全在Excel中执行此操作并不是计算大约70,000行数据的最佳方法。