求C# EXCEL Sheet1 转置成Sheet2 思路和资料

一叶无秋 2019-01-23 02:30:59
求C# EXCEL Sheet1 "转置 " 成Sheet2 思路和资料。 “转置” 就是把EXCEL 内容 横版内容转成竖版。
如下图。
...全文
359 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
一叶无秋 2019-02-22
  • 打赏
  • 举报
回复
EXCEL 里的数据,在不知道格式的情况下,内部还包含了格子的合并,没法用C# 来处理。
一叶无秋 2019-02-22
  • 打赏
  • 举报
回复
wanghui0380 2019-02-20
  • 打赏
  • 举报
回复
不需要用C#程序,excel自己就可以“excel 数据透视表”

如果你要C#代码,其实一样。请百度(谷歌)“C# 数据透视表”,基本上这都是学生题目。
Hello World, 2019-02-20
  • 打赏
  • 举报
回复
这不就是一行一行的读出来,变成一列一列的写进去么?C#直接读写单元格好了,用NPOI或者EPPLUS什么的都可以
一叶无秋 2019-01-23
  • 打赏
  • 举报
回复

Sub ZH()
Dim Wb As Workbook
Dim sh As Worksheet

On Error Resume Next
Set Wb = Workbooks("工作薄")
On Error GoTo 0
If Wb Is Nothing Then
Worksheets.Add(after:=Worksheets(1)).Name = "工作薄"
End If
Set sh = Worksheets("工作薄")
sh.Activate
sh.UsedRange.ClearContents
Sheet2.Range("A1").CurrentRegion.Copy
sh.Range("A1").PasteSpecial Paste:=xlPasteAll, Transpose:=True
Application.CutCopyMode = False
End Sub
用vba 编程 可以,这个代码是可以在EXCEL 内 宏 执行,现在查下 怎么有法 通过C#程序 把上面代码写入到EXCEL 宏中,并执行。上面代码的内容大概是, 判断“工作薄” sheet 是否存在,不存在就创建,然后激活,存在就清空,清空后将sheet2 内容转置 到“工作薄”里。
一叶无秋 2019-01-23
  • 打赏
  • 举报
回复
在网上查了下,用EXCEL VBA 宏 可以实现 转置



Sub ZH()
Sheet1.UsedRange.ClearContents
Sheet2.Range("A1").CurrentRegion.Copy
Sheet1.Range("A1").PasteSpecial Paste:=xlPasteAll, Transpose:=True
Application.CutCopyMode = False
End Sub


不过不知道 怎么通过代码实现
一叶无秋 2019-01-23
  • 打赏
  • 举报
回复
引用 1 楼 以专业开发人员为伍 的回复:
Excel(Office)本身支持二维数组模式读写数据。其 COM 接口的 c#/.net 接口适配类库,可以直接“一句话”读一个 Range.Value2 成二维数组,也可以直接“一句话”将二维数组写入 Excel。而且这样自然是一个单元一个单元地读写 Excel 不知道快几百倍了!

所以,你只要会对二维数组转置就成了!

有些不懂,你的意思是将EXCEL 内的数据,利用程序内部来置换? 在保存到EXCEL内? 通过处理数据来达到转置效果? 但是如果EXCEL 存在单元格存在合并的格子,通过数据转置 没用啊。
  • 打赏
  • 举报
回复
Excel(Office)本身支持二维数组模式读写数据。其 COM 接口的 c#/.net 接口适配类库,可以直接“一句话”读一个 Range.Value2 成二维数组,也可以直接“一句话”将二维数组写入 Excel。而且这样自然是一个单元一个单元地读写 Excel 不知道快几百倍了! 所以,你只要会对二维数组转置就成了!

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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