我目前有一个回复,它会在拍卖中发回一个项目列表。我想要做的是在将数据导出到excel电子表格之前清理数组。我可以使用yii或php在导出之前清理选择,我只需要知道如何做到这一点。我知道如何使用mysql语句来做这件事,但这在yii世界中是不受欢迎的。
这是我目前的代码:
$auction = Btmauctions::model()->findByPk($id);
$listings = $auction->btmListings;
$filename = 'last_lot_export.csv';
$csv = new ECSVExport($listings);
$csv->toCSV($filename); // returns string by default
Yii::app()->getRequest()->sendFile( $auction->name.'_lots.csv' , file_get_contents( $filename ) );
这会导出一个如下所示的csv:
ID| auction_ID| lot| description | manufacturer | model|more_info| condition
21 10 12 FANUC CIRCUIT BOARD Fanuc A20B-9000-0180/09C 3
20 10 1 FANUC CIRCUIT BOARD Fanuc A20B-0008-0242/023A 4
22 10 18 FANUC CIRCUT BOARD Fanuc A20B-1003-0010/12B * A LITTLE DIRTY 3
23 10 19 FANUC CIRCUIT BOARD Fanuc A20B-1003-0020/03A *VERY DIRTY!!! *PLASTIC BROKEN ON RISERS!! COSMETIC ONLY!! 3
我需要做的是在导出之前自动清理cvs,使其如下所示:
lot|INFO | manufacturer| model| more info | condition
12 FANUC CIRCUIT BOARD Fanuc A20B-9000-0180/09C 3
1 FANUC CIRCUIT BOARD Fanuc A20B-0008-0242/023A 4
18 FANUC CIRCUT BOARD Fanuc A20B-1003-0010/12B * A LITTLE DIRTY 3
19 FANUC CIRCUIT BOARD Fanuc A20B-1003-0020/03A *VERY DIRTY!!!
要总结这些更改,我需要删除前两列,并重命名'说明'列到' INFO'
答案 0 :(得分:0)
guard let filePath = NSBundle.mainBundle().pathForResource("fractal", ofType: "gif"),
let gifData = NSData(contentsOfFile: filePath) else {
return
}
var webViewBG = UIWebView(frame: self.view.frame)
webViewBG.loadData(gifData, MIMEType: "image/gif", textEncodingName: "utf-8",
baseURL: NSURL(string: "http://localhost/")!)
并且只导出您想要的列我将只选择那些列。看起来ECSVExport类可以使用CArrayDataprovider作为输入。因此,只选择要导出的列并用它填充CArrayDataprovider并导出到您的类。
但您也可以使用“setCallback”函数删除不需要的列条目或“setExclude”函数。 对于这两个函数,上面给出的链接中有一个例子。