2
我目前正在尝试从Excel电子表格中读取单元格,并且它在我不需要时似乎会重新格式化单元格。我希望它作为计划文本来完成。我已经阅读了几个针对这个问题的解决方案,并且已经实现了它们,但我仍然遇到同样的问题。从Excel中读取列,重新格式化单元格
阅读器将日期的数字和数字变成日期。
例子:
周五2016年1月29日出来是:42398
和
40.00出来是:1900年2月9日上午12点00分○○秒
代码:
string stringconn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + files[0] + ";Extended Properties=\"Excel 12.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text\"";
try {
OleDbConnection conn = new OleDbConnection(stringconn);
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [CUAnswers$]", conn);
DataTable dt = new DataTable();
try {
printdt(dt);
我试图
IMEX=0;
HDR=NO;
TypeGuessRows=1;
这是我如何打印出的纸张
public void printdt(DataTable dt) {
int counter1 = 0;
int counter2 = 0;
string temp = "";
foreach (DataRow dataRow in dt.Rows) {
foreach (var item in dataRow.ItemArray) {
temp += " ["+counter1+"]["+counter2+"]"+ item +", ";
counter2++;
}
counter1++;
logger.Debug(temp);
temp = "";
counter2 = 0;
}
}
这没有帮助。我不想重新转换它。我希望它以正确的格式出来。或者就像计划文本一样。 –
在我看来,如果你想读一个单元格作为字符串,那么它需要输入为一个字符串,而不是一个日期时间(或其他)。您可能需要更改电子表格并将这些单元格转换为文本,可能需要用单引号将值加前缀。 (这可能不是你想要的答案。) –
@Sari请在我的编辑中看到新的想法。 –