|
|
@@ -14,11 +14,11 @@ namespace UAS_LabelMachine
|
|
|
/// <summary>
|
|
|
/// 导出Excel,返回文件在客户端的路径
|
|
|
/// </summary>
|
|
|
- public string ExportExcel(DataTable dt, string FolderPath, string FileName)
|
|
|
+ public string ExportExcel(DataTable dt, DataTable Captioon, string FolderPath, string FileName)
|
|
|
{
|
|
|
//创建一个内存流,用来接收转换成Excel的内容
|
|
|
MemoryStream ms;
|
|
|
- ms = DataTableToExcel(dt);
|
|
|
+ ms = DataTableToExcel(dt, Captioon);
|
|
|
//以系统当前时间命名文件,FileMode.Create表示创建文件,FileAccess.Write表示拥有写的权限
|
|
|
string filePath = @FolderPath + "\\" + FileName + ".xls";
|
|
|
FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
|
|
|
@@ -50,7 +50,7 @@ namespace UAS_LabelMachine
|
|
|
/// </summary>
|
|
|
/// <param name="DataTable"></param>
|
|
|
/// <returns></returns>
|
|
|
- public MemoryStream DataTableToExcel(DataTable DataTable)
|
|
|
+ public MemoryStream DataTableToExcel(DataTable DataTable, DataTable Captioon)
|
|
|
{
|
|
|
//创建内存流
|
|
|
MemoryStream ms = new MemoryStream();
|
|
|
@@ -78,10 +78,6 @@ namespace UAS_LabelMachine
|
|
|
}
|
|
|
sheet.SetColumnWidth(i, dataLength);
|
|
|
}
|
|
|
- //首先画好第一行带颜色的,单独写出来,避免写在循环里面
|
|
|
- IRow row = sheet.CreateRow(0);
|
|
|
- //冻结第一行
|
|
|
- sheet.CreateFreezePane(0, 1, 0, 1);
|
|
|
ICellStyle style = book.CreateCellStyle();
|
|
|
style.FillForegroundColor = HSSFColor.PALE_BLUE.index;
|
|
|
style.FillPattern = FillPatternType.BIG_SPOTS;
|
|
|
@@ -91,31 +87,57 @@ namespace UAS_LabelMachine
|
|
|
style.BorderLeft = BorderStyle.THICK;
|
|
|
style.BorderRight = BorderStyle.THICK;
|
|
|
style.BorderTop = BorderStyle.THICK;
|
|
|
- row.HeightInPoints = 20;
|
|
|
- //固定第一行
|
|
|
- //row.RowStyle.IsLocked=true;
|
|
|
- //给第一行的标签赋值样式和值
|
|
|
- for (int j = 0; j < columnNum; j++)
|
|
|
+ //首先画好第一行带颜色的,单独写出来,避免写在循环里面
|
|
|
+ int rowindex = 0;
|
|
|
+ if (Captioon.Rows[0]["es_engenable"].ToString() == "-1")
|
|
|
{
|
|
|
- row.CreateCell(j);
|
|
|
- row.Cells[j].CellStyle = style;
|
|
|
- row.Cells[j].CellStyle.VerticalAlignment = VerticalAlignment.CENTER;
|
|
|
- row.Cells[j].CellStyle.Alignment = HorizontalAlignment.CENTER;
|
|
|
- row.Cells[j].SetCellValue(DataTable.Columns[j].ColumnName);
|
|
|
+ IRow row0 = sheet.CreateRow(rowindex);
|
|
|
+ for (int i = 0; i < Captioon.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ row0.CreateCell(i).SetCellValue(Captioon.Rows[i]["esd_engcaption"].ToString());
|
|
|
+ row0.Cells[i].CellStyle = style;
|
|
|
+ row0.Cells[i].CellStyle.VerticalAlignment = VerticalAlignment.CENTER;
|
|
|
+ row0.Cells[i].CellStyle.Alignment = HorizontalAlignment.CENTER;
|
|
|
+ }
|
|
|
+ rowindex = rowindex + 1;
|
|
|
+ }
|
|
|
+ if (Captioon.Rows[0]["es_chineseenable"].ToString() == "-1")
|
|
|
+ {
|
|
|
+ IRow row1 = sheet.CreateRow(rowindex);
|
|
|
+ for (int i = 0; i < Captioon.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ row1.CreateCell(i).SetCellValue(Captioon.Rows[i]["esd_caption"].ToString());
|
|
|
+
|
|
|
+ row1.Cells[i].CellStyle = style;
|
|
|
+ row1.Cells[i].CellStyle.VerticalAlignment = VerticalAlignment.CENTER;
|
|
|
+ row1.Cells[i].CellStyle.Alignment = HorizontalAlignment.CENTER;
|
|
|
+ }
|
|
|
+ rowindex = rowindex + 1;
|
|
|
}
|
|
|
+ //冻结第一行
|
|
|
+ sheet.CreateFreezePane(0, rowindex, 0, rowindex);
|
|
|
+
|
|
|
+ IRow row = sheet.CreateRow(rowindex);
|
|
|
+
|
|
|
+ row.HeightInPoints = 20;
|
|
|
+
|
|
|
//将DataTable的值循环赋值给book,Aligment设置居中
|
|
|
//之前已经画了带颜色的第一行,所以从i=1开始画
|
|
|
for (int i = 0; i < rowNum; i++)
|
|
|
{
|
|
|
- IRow row1 = sheet.CreateRow(i + 1);
|
|
|
- row1.HeightInPoints = 20;
|
|
|
+ row = sheet.CreateRow(i + rowindex);
|
|
|
+ row.HeightInPoints = 20;
|
|
|
for (int j = 0; j < columnNum; j++)
|
|
|
{
|
|
|
- row1.CreateCell(j);
|
|
|
- row1.Cells[j].SetCellValue(DataTable.Rows[i][j].ToString());
|
|
|
- row1.GetCell(j).CellStyle.VerticalAlignment = VerticalAlignment.CENTER;
|
|
|
+ row.CreateCell(j);
|
|
|
+ row.Cells[j].SetCellValue(DataTable.Rows[i][j].ToString());
|
|
|
+ row.GetCell(j).CellStyle.VerticalAlignment = VerticalAlignment.CENTER;
|
|
|
}
|
|
|
}
|
|
|
+ for (int i = 0; i < DataTable.Columns.Count; i++)
|
|
|
+ {
|
|
|
+ sheet.AutoSizeColumn(i);
|
|
|
+ }
|
|
|
//将book的内容写入内存流中返回
|
|
|
book.Write(ms);
|
|
|
return ms;
|