/// <summary> /// 删除Excel空列 /// </summary> /// <param name="excelPath">Excel路径</param> /// <param name="columns">是空行但要保留的列</param> /// <returns></returns> public static void DeleteNullColumn(string excelPath) { //用的时候就拿到Main方法里去 //DirectoryInfo dirInfo = new DirectoryInfo(@"C:\Users\11572\Desktop\木板年画元数据(依模板 供数据加工使用)"); //foreach (var item in dirInfo.GetFiles()) //{ // DeleteNullColumn(item.FullName); //} //必须要的列 string[] colums = new string[]{ "主题词","著录号","唯一标识符","标准编号","题名","其他题名信息","主要责任者","其他责任者","出版日期","出版者", "出版地","印刷日期","时间","语种","相关资源附注","丛编","提要","册数","数量","字数(千字)","版次","印次","开本信息","装订形式","版式","定价","总序","分类","重名的书" }; DataTable dataTable = ExcelUtility.ExcelToDataTable(excelPath, 0, true); List<string> removeColumn = new List<string>(); foreach (DataColumn column in dataTable.Columns) { int columLenght = 0; foreach (DataRow row in dataTable.Rows) { columLenght += row[column.ColumnName].ToString().Length; if (columLenght > 0) { break; } } if (columLenght == 0) { removeColumn.Add(column.ColumnName); } } foreach (var col in colums) { removeColumn.Remove(col); } foreach (var col in removeColumn) { dataTable.Columns.Remove(col); } dataTable.Columns["题名"].ColumnName = "題名"; dataTable.Columns["字数(千字)"].ColumnName = "字数千字"; if (ExcelUtility.DataTableToExcel(dataTable, Path.Combine(Path.GetDirectoryName(excelPath), "新建文件夹", Path.GetFileNameWithoutExtension(excelPath) + ".xls"))) { } }
原文:https://www.cnblogs.com/mi21/p/11282544.html