我正在使用一个小命令行工具从excel表中提取一些数据。
我想删除应用AutoFilter后可见的所有行。
不幸的是,我只是不知道如何继续。 经过一番搜索,我没有找到适合我的答案。
这是我到目前为止所得到的:
oXL = new Excel.Application();
oXL.Visible = false;
oWB = oXL.Workbooks.Open(source);
oXS = (Excel.Worksheet)oWB.Sheets[1];
Excel.Range filter = oXS.UsedRange;
filter.AutoFilter(8, "<>text to filter");
如何删除过滤后显示的所有行?
感谢。
CRowland
答案 0 :(得分:0)
也许回答有点迟,但我把它作为参考。
每个Excel.Range
对象都有一个Delete()
方法:
Excel.Range filter = oXS.UsedRange;
filter.AutoFilter(8, "<>text to filter");
filter.AutoFilter.Range.Delete();
答案 1 :(得分:0)
$color_codes = ColorCode::select(['color_code.code', 'manufacturer_bundle.name'])->distinct()
->leftJoin('manufacturer_bundle', 'color_code.manufacturer_id' , '=' , 'manufacturer_bundle.id')
->get();
foreach ($color_codes as $color_data) {
$color_code = ColorCode::where('code', color_data->code)->first();
echo $color_code->manufacturer->name;
}
答案 2 :(得分:0)
您可以查看此 VBA 参考。顺便说一句,在操作 EnableAutoFilter
函数之前,您需要为工作表设置 AutoFilter
值。
https://danwagner.co/how-to-delete-rows-with-range-autofilter/