3.1、Excel 导入导出DataTable
1、导入DataGridView:
http://www.jb51.net/article/43817.htm
2、使用Npoi 两种方式:
https://www.cnblogs.com/mora1988/p/5715097.html
https://zhidao.baidu.com/question/1608136706392015267.html
https://www.cnblogs.com/mora1988/p/5715097.html
3、目前使用的方式:
https://blog.csdn.net/qq_26054303/article/details/48291955
4、C# DataGridView 第二次绑定数据源 不能正常显示数据?

if (r == System.Windows.Forms.DialogResult.OK)//【注意,这块只能这么写,如果写成if (r == System.Windows.Forms.DialogResult.OK) 则无反应】
5、导入Excel到界面上,将excel分为三个datatable,一个是左上角的,一个是Parameter到结尾【主要用于 显示GridView的第一列,然后筛选一下就可以了!】,一个是Parameter到DefaultValue.
第一个DT:对应Excel的范围是[C7,W160] Form4,BtnImportExcel
private void btnImport_Click(object sender, EventArgs e)
{
//ExcelHelper.ExcelToDT(@"C:\Users\wanglina\Desktop\20180402085400PMHeating.xls");
string fileFullName = "";
OpenFileDialog saveDialog = new OpenFileDialog();
saveDialog.DefaultExt = "xls";
saveDialog.Filter = "Excel文件(*.xls,*.xlsx)|*.xls;*.xlsx;";
//saveDialog.FileName = fileFullName;
DialogResult r = saveDialog.ShowDialog();
fileFullName = saveDialog.FileName;
if (r != System.Windows.Forms.DialogResult.OK)//【注意,这块只能这么写,如果写成if (r == System.Windows.Forms.DialogResult.OK) 则无反应】
return;
dgvEX1.Columns.Clear();//dataGridViewEX1.DataSourceEX = null;//不好使!!
DataTable dt = ExcelHelper.ExcelToDT(fileFullName);
List<string> filter = new List<string>();
filter.Add("ID");
filter.Add("Parameter Name");
for (int i = 0; i < dt.Columns.Count; i++)
{
if (dt.Rows.Count == 0) return;
if (dt.Columns[i].ColumnName.Contains("Step") && dt.Rows[0][i].ToString() != "")
filter.Add(dt.Columns[i].ColumnName);
}
DataTable dtStep = dt.DefaultView.ToTable(false, filter.ToArray());//进行列筛选
///进行列筛选(PM是137行,TLLHeating是45行,但是不知道为什么,可能是Excel有记忆模式,每次 导入excel的时候 PM是137行,
///但是 TLLHeating也是137行(前45行有数据,后面的全是空,然后导到DataGridView中,不好看,因此这里加上一个 对ID列的数据筛选,当 ID筛去ID为空的DataTable))
var dv = dtStep.DefaultView;
dv.RowFilter="ID is not null";
dtStep = dv.ToTable();
dgvEX1.DataSourceEX = dtStep;
}
Q、进行列筛选(PM是137行,TLLHeating是45行,但是不知道为什么,可能是Excel有记忆模式,每次 导入excel的时候 PM是137行,但是 TLLHeating也是137行(前45行有数据,后面的全是空,然后导到DataGridView中,不好看,因此这里加上一个 对ID列的数据筛选,当 ID筛去ID为空的DataTable))
增:
Datatable 筛选行和筛选列
6、https://www.cnblogs.com/brucemengbm/p/6863209.html
近期在用C#写一个创建Excel并将数据导出到Excel的WinForm程序,
让我对OleDB连接Excel的Extended Properties(扩展属性)HDR=YES; IMEX=2有了深刻的认识!
參数HDR的值:
參数Excel 8.0 对于Excel 97以上到2003版本号都用Excel 8.0,2007或2010的都用Extended Properties=Excel 12.0
IMEX ( IMport EXport mode )设置
IMEX 有三种模式:
0 is Export mode
1 is Import mode
2 is Linked mode (full update capabilities)
我这里特别要说明的就是 IMEX 參数了,由于不同的模式代表著不同的读写行为:
当 IMEX=0 时为“汇出模式”。这个模式开启的 Excel 档案仅仅能用来做“写入”用途。
当 IMEX=1 时为“汇入模式”。这个模式开启的 Excel 档案仅仅能用来做“读取”用途。
当 IMEX=2 时为“连結模式”。这个模式开启的 Excel 档案可同一时候支援“读取”与“写入”用途。
意义例如以下:
0 ---输出模式;
1---输入模式;
2----链接模式(全然更新能力)


浙公网安备 33010602011771号