Excel导出

public void Export()

{

SaveFileDialog SaveFile = new SaveFileDialog();

SaveFile.FileName = "Test" + ".xlsx";

string strFilter = "xlsx文件(*.xlsx)|*.xlsx";

SaveFile.Filter = strFilter;

SaveFile.RestoreDirectory = true;

SaveFile.AddExtension = false;

if (SaveFile.ShowDialog() != DialogResult.OK)

{

return ;

}

ExportEXCEL(SaveFile.FileName);

}

private void ExportEXCEL(string strEXCLEFile)

{

if (File.Exists(strEXCLEFile))

{

File.Delete(strEXCLEFile);

}

Dictionary<string, int> dicSrcIndexToUserValue = new Dictionary<string, int>();

Dictionary<string, int> dicIndexToUserValue = new Dictionary<string, int>();

List<string> listAttrName = new List<string>();

listAttrName.Add("父项ID");

listAttrName.Add("ID");

listAttrName.Add("模型名称");

listAttrName.Add("新模型名称");

listAttrName.Add("节点类型");

listAttrName.Add("矩阵坐标");

listAttrName.Add("颜色");

listAttrName.Add("透明度");

//构造列名

DataTable tblDatas = new DataTable("UserProperty");//UserProperty 是sheet的名字

for (int nIndex = 0; nIndex < listAttrName.Count; nIndex++)

{

tblDatas.Columns.Add(listAttrName[nIndex], Type.GetType("System.String"));

}

string strFatherID = "";

string strModelID = "";

string strModelName = "";

string strNodeType = "";

string strMatrixCoordinate = "";

string strModelColor = "";

string strModelTransparency = "";

for (int i = 0; i < 10; i++)

{

List<string> listStrValue = new List<string>();

for (int n = 0; n < listAttrName.Count; n++)//一行加8个空字符

{

listStrValue.Add("");

}

listStrValue[listAttrName.FindIndex(item => item.Equals("父项ID"))] = i.ToString();

listStrValue[listAttrName.FindIndex(item => item.Equals("ID"))] = (i + 1).ToString();

listStrValue[listAttrName.FindIndex(item => item.Equals("模型名称"))] = (i + 2).ToString();

listStrValue[listAttrName.FindIndex(item => item.Equals("新模型名称"))] = "100";

listStrValue[listAttrName.FindIndex(item => item.Equals("节点类型"))] = (i + 3).ToString();

listStrValue[listAttrName.FindIndex(item => item.Equals("矩阵坐标"))] = (i + 4).ToString();

listStrValue[listAttrName.FindIndex(item => item.Equals("颜色"))] = (i + 5).ToString();

listStrValue[listAttrName.FindIndex(item => item.Equals("透明度"))] = (i + 6).ToString();

tblDatas.Rows.Add(listStrValue.ToArray()); //添加行信息

}

//保存Excel文件

TableToExcel(tblDatas, strEXCLEFile);

}

public static void TableToExcel(DataTable dt, string file)

{

IWorkbook workbook;

string fileExt = System.IO.Path.GetExtension(file).ToLower();

if (fileExt == ".xlsx")

{

workbook = new XSSFWorkbook();

}

else if (fileExt == ".xls")

{

workbook = new HSSFWorkbook(); } else { workbook = null;

}

if (workbook == null) { return; }

ISheet sheet = string.IsNullOrEmpty(dt.TableName) ? workbook.CreateSheet("Sheet1") : workbook.CreateSheet(dt.TableName);

//表头

IRow row = sheet.CreateRow(0);

for (int i = 0; i < dt.Columns.Count; i++)

{

ICell cell = row.CreateCell(i);

cell.SetCellValue(dt.Columns[i].ColumnName);

}

//数据

for (int i = 0; i < dt.Rows.Count; i++)

{

IRow row1 = sheet.CreateRow(i + 1);

for (int j = 0; j < dt.Columns.Count; j++)

{

ICell cell = row1.CreateCell(j);

cell.SetCellValue(dt.Rows[i][j].ToString());

}

}

//转为字节数组

MemoryStream stream = new MemoryStream();

workbook.Write(stream);

var buf = stream.ToArray();

//保存为Excel文件

using (FileStream fs = new FileStream(file, FileMode.Create, FileAccess.Write))

{

fs.Write(buf, 0, buf.Length);

fs.Flush();

}

}

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值