我知道有很多关于这个主题的帖子,但似乎没有一个处理这个特定问题。我正在尝试制作一个小型通用文档生成器 POC。我正在使用 Open XML。
代码是这样的:
private static void ReplacePlaceholders<T>(string templateDocumentPath, T templateObject)
where T : class
{
using (var templateDocument = WordprocessingDocument.Open(templateDocumentPath, true))
{
string templateDocumentText = null;
using (var streamReader = new StreamReader(templateDocument.MainDocumentPart.GetStream()))
{
templateDocumentText = streamReader.ReadToEnd();
}
var props = templateObject.GetType().GetProperties();
foreach (var prop in props)
{
var regexText = new Regex($"{prop.Name}");
templateDocumentText =
regexText.Replace(templateDocumentText, prop.GetValue(templateObject).ToString());
}
using var streamWriter = new StreamWriter(templateDocument.MainDocumentPart.GetStream(FileMode.Create));
streamWriter.Write(templateDocumentText);
}
}
Run Code Online (Sandbox Code Playgroud)
该代码按预期工作。 问题如下:
StreamReader.ReadToEnd()在标签之间拆分我的占位符,因此我的 Replace 方法仅替换不会拆分的单词。
在这种情况下,我的代码将搜索单词“Firstname”,但会找到“irstname”,因此不会替换它。
有没有办法逐字扫描整个 .docx …
我需要在材质表列渲染属性中使用自定义函数。该函数被调用,我在控制台上打印了预期的结果,但是,结果根本不会在表中呈现。这是代码:
import React from 'react';
import HraReferenceDataContext from '../context/hraReferenceData/hraReferenceDataContext';
import MaterialTable from 'material-table';
const EmployeeDetailsCompanyDocuments = ({ companyDocumentsData }) => {
const hraReferenceDataContext = React.useContext(HraReferenceDataContext);
const { companyDocumentTypes } = hraReferenceDataContext;
const getDocumentTypeForRow = id => {
companyDocumentTypes.forEach(type => {
if (type.id === id) {
console.log(type.name)
return type.name;
}
});
};
const columnInfo = [
{
field: 'typeId',
title: 'Type',
render: rowData =>{ getDocumentTypeForRow(rowData.typeId)}, //here is the problem
},
{ field: 'created', title: 'Created On' },
];
return (
<MaterialTable …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Axios 和 Typescript 在 React 应用程序中编写 API 服务。
这是我的代码:
interface Service<T> {
GetAll?: Promise<AxiosResponse<T>>;
}
interface Example {
id: Number;
}
const ApiService2 = () => {
const Example = (): Service<Example> => {
const GetAll = (): Promise<AxiosResponse<Example[]>> => {
return axios.get<Example[]>("urlhere");
};
return {
GetAll
};
};
};
Run Code Online (Sandbox Code Playgroud)
这是我的完整错误:
Type '() => Promise<AxiosResponse<Example[]>>' is missing the following properties from type 'Promise<AxiosResponse<Example>>': then, catch, [Symbol.toStringTag], finally TS2739
Run Code Online (Sandbox Code Playgroud)