一、导出Excel中的所有表到 表名.txt 文件
示例:
项目->添加引用->COM
添加以下引用库
Microsoft Office 14.0 Object Library
Microsoft Excel 14.0 Object Library
Microsoft Word 14.0 Object Library
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Reflection;
using Microsoft.Office.Core;
using Microsoft.Office.Interop.Excel;
namespace LanguagePack
{
class Program
{
static void Main(string[] args)
{
string excelFileName = "语言包.xlsm";
int keyCol = 1;//语言key所在列号
int langCol = 6;//要导出的语言所在列号
if (args.Length > 0)
{
langCol = int.Parse(args[0]);
}
else
{
MENU:
Console.WriteLine("2、简体中文");
Console.WriteLine("3、繁体中文");
Console.WriteLine("4、韩文");
Console.WriteLine("5、越南文");
Console.WriteLine("6、英文");
Console.WriteLine("请选择要导出的语言类型: ");
string menu = Console.ReadLine();
if (string.IsNullOrEmpty(menu))
goto MENU;
langCol = int.Parse(menu);
if (langCol < 2 || langCol > 6)
{
Console.WriteLine("选择无效,请重新选择.");
goto MENU;
}
}
string excelFilePath = Directory.GetCurrentDirectory() + "\\"+excelFileName;
Console.WriteLine(excelFilePath);
Application app = new Application();
Workbooks wbks = app.Workbooks;
_Workbook _wbk = wbks.Add(excelFilePath);
Sheets shs = _wbk.Sheets;
Range range_key, range_val;
string key, value="";
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= shs.Count; i++)
{
_Worksheet _wsh = (_Worksheet)shs.get_Item(i);
int lastRow = _wsh.UsedRange.Row + _wsh.UsedRange.Rows.Count - 1;//获取最后一行行号
Console.WriteLine("正在导出 工作表名称: {0} 总行数: {1}", _wsh.Name, lastRow);
for (int j = 1; j <= lastRow; j++)
{
range_key = _wsh.Cells[j, keyCol];
if(null == range_key)
continue;
key = range_key.Value;
if (string.IsNullOrEmpty(key))
continue;
range_val = _wsh.Cells[j, langCol];
if (null != range_val && null != range_val.Value)
value = range_val.Value.ToString();
else
value = "";
sb.AppendFormat("{0}\t{1}\r\n", key, value);
}
if (sb.Length > 0)
{
string path = Directory.GetCurrentDirectory() + "\\" + _wsh.Name + ".txt";
StreamWriter sw = File.CreateText(path);
sw.AutoFlush = true;
sw.Write(sb.ToString());
sw.Flush();
sw.Close();
sw = null;
}
}
Console.WriteLine("语言包导出完毕!");
Console.ReadKey();
}
}
}