Aspose.Cells.dll需要用破解版文件,请悉知。文件下载链接:https://pan.baidu.com/s/1y4oNiT4UG24wBniA25LX8g 提取码:vc68
1、文件导出
public static bool AsposeCellsExport(System.Data.DataTable dt,string filepath)
{
try
{
if (dt == null)
{
MessageBox.Show("数据为空");
return false;
}
//Aspose.Cells.TxtLoadOptions lo = new TxtLoadOptions();
//lo.Encoding = Encoding.Default;//中文乱码
//Aspose.Cells.Workbook book = new Aspose.Cells.Workbook(filepath, lo);//打开受保护文件时,列名为乱码,可能是格式不对
Aspose.Cells.Workbook book = new Aspose.Cells.Workbook(); //创建工作簿
book.Settings.Password = "pwd123";
Aspose.Cells.Worksheet sheet = book.Worksheets[0]; //创建工作表
Cells cells = sheet.Cells; //单元格
//创建样式
int Colnum = dt.Columns.Count;//表格列数
int Rownum = dt.Rows.Count;//表格行数
//生成行 列名行
for (int i = 0; i < Colnum; i++)
{
cells[0, i].PutValue(dt.Columns[i].ColumnName); //添加表头
}
//生成数据行
for (int i = 0; i < Rownum; i++)
{
for (int k = 0; k < Colnum; k++)
{
cells[1 + i, k].PutValue(dt.Rows[i][k].ToString()); //添加数据
}
}
sheet.AutoFitColumns(); //自适应宽
book.Save(filepath); //保存
MessageBox.Show("Excel保存成功!!!");
GC.Collect();
return true;
}
catch (Exception e)
{
MessageBox.Show(e.Message.ToString());
return false;
}
}
2、文件导入
public static System.Data.DataTable AsposeCellsImport(string filepath)
{
try
{
System.Data.DataTable dt = new System.Data.DataTable();
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.InitialDirectory = filepath;//注意这里写路径时要用c:\\而不是c:\
openFileDialog.Filter = "Excel文件|*.xls"; // CSV文件|*.csv Excel文件|*.xls
openFileDialog.RestoreDirectory = true;
openFileDialog.FilterIndex = 1;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
LoadOptions loadOptions = new LoadOptions();
loadOptions.Password = "pwd123";
Aspose.Cells.Workbook wk = new Aspose.Cells.Workbook(openFileDialog.FileName,loadOptions);
Aspose.Cells.Worksheet ws = wk.Worksheets[0];
Cells cells = wk.Worksheets[0].Cells;
//wk.Settings.Password = "pwd123";//文件密码--报错:Invalid Password
wk.Unprotect("pwd123");
if (cells.Count > 0 )
dt = cells.ExportDataTable(0, 0, cells.MaxDataRow + 1, cells.MaxColumn + 1, true);
//for(int i=0;i<dt.Columns.Count;i++)
//{
//MessageBox.Show(dt.Columns[i].ColumnName.ToString());
//}
//for (int k = 0; k < dt.Rows.Count; k++)
//{
//for (int h = 0; h < dt.Columns.Count; h++)
//{
//MessageBox.Show(dt.Rows[k][h].ToString());
//}
//}
}
return dt;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
return null;
}
}
代码通过百度经验锤炼,受得起折磨。大家可以收藏啦!