ksc*_*eck 27 c# format excel alignment
我在excel表格中遇到问题.出于某种原因,当我只想更改指定范围或指定范围的样式时,我的代码似乎正在改变所有单元格的样式.
这是我正在使用的一些代码:
app = new Microsoft.Office.Interop.Excel.Application();
workbook = app.Workbooks.Add(1);
worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets[1];
//Change all cells' alignment to center
worksheet.Cells.Style.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
//But then this line changes every cell style back to left alignment
worksheet.Cells[y + 1, x + 2].Style.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignLeft;
Run Code Online (Sandbox Code Playgroud)
当我将它设置为仅在一个单元格上工作时,为什么它会改变多个单元格的样式?是不是应该按我想要的方式工作?还有另一种方法吗?
小智 24
这很好用
worksheet.get_Range("A1","A14").Cells.HorizontalAlignment =
Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignLeft;
Run Code Online (Sandbox Code Playgroud)
DGH*_*DGH 23
基于OP的这个评论,"我发现了问题.显然是工作表.细胞[y + 1,x + 1] .HorizontalAlignment",我相信真正的解释是所有细胞都开始共享同一个Style对象.因此,如果您更改该样式对象,它将更改使用它的所有单元格.但是,如果您只是直接更改单元格的对齐属性,则只会影响该单元格.
也许声明一个范围可能会更适合你.
// fill in the starting and ending range programmatically this is just an example.
string startRange = "A1";
string endRange = "A1";
Excel.Range currentRange = (Excel.Range)excelWorksheet.get_Range(startRange , endRange );
currentRange.Style.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignLeft;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
108629 次 |
| 最近记录: |