我正在使用C#.net和NetOffice.ExcelApi创建一个excel表。我想使用以下代码自动调整A到G列:
Excel.Workbook xlWorkBook = xlApp.Workbooks.Add();
Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets[1];
xlWorkSheet.Columns["A:G"].AutoFit();
我也试过这段代码:
Excel.Workbook xlWorkBook = xlApp.Workbooks.Add();
Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets[1];
xlWorkSheet.Columns.AutoFit();
结果仍然是列不适合。
有人可以帮帮我吗?
谢谢!
答案 0 :(得分:0)
我猜你也可能需要添加行索引。
我正在使用Excel = Microsoft.Office.Interop.Excel;
这样可行:
Excel.Range myRange= xlWorkSheet.get_Range("A1:G10");
myRange.AutoFit();
也许在NetOffice.ExcelApi中有类似范围的东西。 :|
顺便说一句,你有没有使用Microsoft.Office.Interop.Excel的原因?由于标签表示您正在编写Windows窗体应用程序,因此应该没有任何问题。我认为有更多文档可供Microsoft.Office.Interop.Excel。
使用更新:我在文档中找到了可以帮助您的内容:http://netoffice.codeplex.com/wikipage?title=Excel_Example02
// setup rows and columns
workSheet.Columns[1].AutoFit();
workSheet.Columns[2].ColumnWidth = 25;
workSheet.Columns[3].ColumnWidth = 25;
workSheet.Columns[4].ColumnWidth = 25;
workSheet.Columns[5].ColumnWidth = 25;
workSheet.Rows[9].RowHeight = 25;
您可能想要执行以下操作:
xlWorkSheet.Range("A:G").AutoFit();
或者它确实需要行索引:
xlWorkSheet.Range("A1:G20").AutoFit();
或者您可以逐个设置所有列:
xlWorkSheet.Columns[1].AutoFit();
xlWorkSheet.Columns[2].AutoFit();
我希望有些东西适合你:)。
但是你的xlWorkSheet.Columns.AutoFit();
不起作用很奇怪。您应该检查问题是否在表单中。
答案 1 :(得分:0)
我遇到了同样的问题。
我意识到我在代码写在excel上的文本之前使用了代码myRange.Columns.AutoFit();
。
请看一下这种情况。