C#Transpose()方法来转置Excel表中的行和列
我想转置Excel表格的行和列,并保存它。 我想为此使用C#的转置()方法。 任何人都可以告诉它如何在C#中使用例子,什么是语法,创build什么对象来调用transpose()方法?
谢谢。
您的方法是Excel对象模型的一部分,但通过Visual Studio Tools for Office / Excel DNA / Managed XLL等包含在C#中
Object[,] transposedRange = (Object[,])xlApp.WorksheetFunction.Transpose(rng.Value2);
然后将transposedRange粘贴回Excel中:
xlApp.ActiveSheet.Range("A1").Resize(transposedRange.GetUpperBound(0), transposedRange.GetUpperBound(1)) = transposedRange;
首先,你必须将Excel工作表转换为数据表,然后以编程方式转换数据表的行和列。为了将Excel工作表转换为数据表,可以在stackoverflow上search问题,因为它有很多类似的问题。
private DataTable GenerateTransposedTable(DataTable inputTable) { DataTable outputTable = new DataTable(); // Add columns by looping rows // Header row's first column is same as in inputTable outputTable.Columns.Add(inputTable.Columns[0].ColumnName.ToString()); // Header row's second column onwards, 'inputTable's first column taken foreach (DataRow inRow in inputTable.Rows) { string newColName = inRow[0].ToString(); outputTable.Columns.Add(newColName); } // Add rows by looping columns for (int rCount = 1; rCount <= inputTable.Columns.Count - 1; rCount++) { DataRow newRow = outputTable.NewRow(); // First column is inputTable's Header row's second column newRow[0] = inputTable.Columns[rCount].ColumnName.ToString(); for (int cCount = 0; cCount <= inputTable.Rows.Count - 1; cCount++) { string colValue = inputTable.Rows[cCount][rCount].ToString(); newRow[cCount + 1] = colValue; } outputTable.Rows.Add(newRow); } return outputTable; }
- 读取使用FileUpload Control上传的Excel文件,而不将其保存在服务器上
- 如何根据对象的属性值来设置Excel表单的格式?
- 如何从Excel VBA中使用.NET对象?
- Excel Interop获取单元格内文本的像素宽度
- 如何知道Process.Start()是否成功?
- System.Runtime.InteropServices.COMException(0x800706BA):RPC服务器不可用。 (从HRESULTexception:0x800706BA)
- 如何插入图片到Excel单元格?
- Excel.Range.Find总是返回null
- 需要在.NET应用程序中embeddedExcel工作表