protected void Page_Load(object sender, EventArgs e)
{
//使用例子
string[] strList ={ "你好", "天气", "你好", "天气", "今天","明天" };
Hashtable ht = SetHashTable(strList, 5);
int str1 = GetNumberValue("你好", ht);
Response.Write(str1);
Response.Write("<br>");
string str2 = GetTextValue(10004,ht);
Response.Write(str2);
Response.Write("<br>");
}
protected void Button1_Click(object sender, EventArgs e)
{
//使用例子
string[] strList ={ "你好", "天气", "你好", "天气", "今天", "明天" };
//Hashtable ht = SetHashTable(strList, 5);
string path = @"G:/test4.xls";
ExportExcel(path, strList);
Response.Write("数据成功导出到" + path);
}
//导出到Excel
private void ExportExcel(string path,string[] strList)
{
ArrayList arr = GetStrList(strList);
int[] num = SetNumber(arr, 5);
ExcelHandler Excel = new ExcelHandler(path);
for (int i = 0; i < arr.Count; i++)
{
Excel.Write(i + 1, 1, arr[i].ToString());
Excel.Write(i + 1, 2, num[i].ToString());
}
Excel.Save();
}
/// <summary>
/// 哈希表
/// </summary>
/// <param name="strList">字符串数组</param>
/// <param name="len">数字长度</param>
/// <returns></returns>
private Hashtable SetHashTable(string[] strList,int len)
{
ArrayList arr = GetStrList(strList);
int[] Number= SetNumber(arr, len);
Hashtable ht = new Hashtable();
for (int i = 0; i < arr.Count; i++)
{
ht.Add(arr[i].ToString(), Number[i]);
}
return ht;
}return ht;
}
//获取数组不同的内容
private ArrayList GetStrList(string[] strList)
{
ArrayList TempList = new ArrayList();
for (int i = 0; i < strList.Length; i++)
{
string tmpstr = strList[i].ToString();
if (!HasD(tmpstr, TempList))
{
TempList.Add(tmpstr);
}
}
return TempList;
}
//当前值在数组中是否存在
private bool HasD(string str, ArrayList strList)
{
for (int i = 0; i < strList.Count; i++)
{
if (str==strList[i].ToString())
{
return true;
}
}
return false;
}
//设置数字数组
private int[] SetNumber(ArrayList strList,int len)
{
int[] intList = new int[strList.Count];
// Random R = new Random();
//string str = "9";
//for (int j = 0; j < len-1; j++)
//{
// str += "9";
//}
// int s = Convert.ToInt32(str);
string str1 = "1";
for (int j = 0; j < len - 1; j++)
{
str1 += "0";
}
int s1 = Convert.ToInt32(str1);
for(int i=0;i<strList.Count;i++)
{
// int N = R.Next(s) ;
// intList[i] = N;
int j = i + 1;
intList[i] = s1 + j;
}
return intList;
}
//根据内容获取哈希表中对应的数字
private int GetNumberValue(string key, Hashtable ht)
{
if (ht.Contains(key))
{
int t = Convert.ToInt32(ht[key].ToString());
return t;
}
return 0;
}
//根据数字获取哈希表中对应的内容
private string GetTextValue(int value, Hashtable ht)
{
//string str = ht["key"].ToString();
foreach (DictionaryEntry de in ht)
{
if (Convert.ToInt32(de.Value.ToString()) == value)
{
return de.Key.ToString();
}
}
return null;
}