请问一个用ASP.NET操作EXCEL样式的问题

fantongwang 2009-09-17 04:16:40
我现在要用C#代码 去获得一个已有的Excel工作表的第一个单元格的样式(这个单元格有背景色、字体等等样式),我要如何才能把这个单元格的样式(仅仅是样式,不需要单元格上的文字)复制到 另一个工作表的第一个单元格上。我试了一下下面的办法,但是不对,请大哥们帮我解决一下

Application app1 = new Application();
Workbook wb = app1.Workbooks.Add(Server.MapPath("test/t1.xls"));
Worksheet ws = (Worksheet)wb.Worksheets.get_Item(1);
Workbook wb2 = app1.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet ws2 = (Worksheet)wb2.Sheets.get_Item(1);

object o = ws.get_Range(ws.Cells[1, 1], ws.Cells[1, 1]).Style;

ws2.get_Range(ws2.Cells[1, 1], ws2.Cells[1, 3]).Merge(Missing.Value);
ws2.get_Range(ws2.Cells[1, 1], ws2.Cells[1, 1]).Style = o;
wb2.SaveAs(Server.MapPath("test2/result.xls"), Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
...全文
228 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fantongwang 2009-09-17
  • 打赏
  • 举报
回复
感谢上面的大哥的热心解答,但是我是只想从已经有的工作表里的第一个单元格得到他的样式,然后把这个样式加到另一个工作表的第一个单元格中
wxd_860825 2009-09-17
  • 打赏
  • 举报
回复
不知道对你有没有帮助
  Microsoft.Office.Interop.Owc11.SpreadsheetClass xlsheet = new Microsoft.Office.Interop.Owc11.SpreadsheetClass();
//合并单元格
xlsheet.get_Range(xlsheet.Cells[1, 1], xlsheet.Cells[1, _col]).set_MergeCells(true);
// xlsheet.get_Range(xlsheet.Cells[2, 1], xlsheet.Cells[3, 2]).set_MergeCells(true);
xlsheet.ActiveSheet.Cells[1, 1] = _til;
//字体加粗
xlsheet.get_Range(xlsheet.Cells[1, 1], xlsheet.Cells[1, _col]).Font.set_Bold(true);
//单元格文本水平居中对齐
xlsheet.get_Range(xlsheet.Cells[1, 1], xlsheet.Cells[_row+2, _col]).set_HorizontalAlignment(Microsoft.Office.Interop.Owc11.XlHAlign.xlHAlignCenter);
//设置字体大小
xlsheet.get_Range(xlsheet.Cells[1, 1], xlsheet.Cells[1, _col]).Font.set_Size(14);
//设置列宽
//xlsheet.get_Range(xlsheet.Cells[1, 3], xlsheet.Cells[1, 3]).set_ColumnWidth(50);

//画边框线
xlsheet.get_Range(xlsheet.Cells[1, 1], xlsheet.Cells[_row+2, _col]).Borders.set_LineStyle(Microsoft.Office.Interop.Owc11.XlLineStyle.xlContinuous);

//定义一个2维数组用来存储DATATABLE里的数据
object[,] dataArray = new object[_row, _col];
//添加列名
for (int k = 0; k < _dt.Columns.Count; k++)
{
xlsheet.ActiveSheet.Cells[2, k + 1] = _dt.Columns[k].Caption.ToString();
}
//把DATATABLE里的数据导到2维数组中
for (int i = 0; i < _row; i++)
{
for (int j = 0; j < _col; j++)
{
dataArray[i, j] = _dt.Rows[i][j];
}
}
//把2维数组中的数据导到EXCEL中
xlsheet.get_Range("A3", xlsheet.Cells[_row+2, _col]).Value2 = dataArray;
xlsheet.Export(_filename, Microsoft.Office.Interop.Owc11.SheetExportActionEnum.ssExportActionNone, Microsoft.Office.Interop.Owc11.SheetExportFormat.ssExportXMLSpreadsheet);
}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧